christos
3ebdac1759
Portability fixes for a non flex based lexical analyzer.
1998-05-18 22:50:20 +00:00
christos
c6e03280d4
Need stdlib.h
1998-05-18 22:48:53 +00:00
christos
d2ded939ef
PR/5315: Dan Winship: options parsing code should print errors to stderr.
1998-05-02 18:04:09 +00:00
cgd
2072394059
move OBJS depenency on built headers to after include of bsd.prog.mk, so
...
that things are built in the right order on 'make cleandir && make' (i.e.
so that the headers are properly built).
1998-04-19 05:22:08 +00:00
lukem
d6c354cb4b
* remove CFLAGS+=-w for powerpc (added in 1.26):
...
- it was in the wrong place
- makefiles shouldn't override CFLAGS; only CPPFLAGS and COPTS
- christos fixed unsigned char stuff in 1.33 which should
remove the need for -w anyway
* move .include <bsd.prog.mk> to EOF
1998-04-13 12:06:48 +00:00
tv
482063559a
.y.c <sys.mk> rule fixes. Don't create a y.tab.h file unless asked for,
...
and use smarter creation of the header file.
1998-04-09 00:32:31 +00:00
fair
667e4d4cd1
fix default PATH to be <paths.h> _PATH_DEFPATH
1998-04-07 21:15:33 +00:00
fair
618cca243b
Change a few things to reference /usr/include/paths.h instead of local
...
references. Fixing the default PATH is a bit more effort.
1998-04-07 10:16:04 +00:00
veego
7f307512f9
Another try to make this work again. Lets hope that the we don't need a 4th
...
fix for it.
1998-03-30 12:06:48 +00:00
mrg
6e35073fed
make this work again when . is not in $PATH
1998-03-30 10:07:16 +00:00
christos
0328c41456
Pr/5221: Jason Thorpe: Simplify sh Makefile, so that builts from other
...
directories work.
1998-03-29 09:27:40 +00:00
mrg
a26bae1e08
- change "extern" variables into int's
...
- remove extern'd variables not actually referenced
- don't use char as an array index
1998-03-29 04:41:43 +00:00
christos
04784d87fa
Fix the VSTRIMRIGHT* bugs... The problem was not the string length computation,
...
but lack of '\0' termination. Factor this segment out as common code too, while
I am there.
1998-03-23 18:21:02 +00:00
christos
19e7771baa
off by one error in ${%%}
1998-03-10 19:11:07 +00:00
christos
7cfc52b208
PR/5001: Tom Yu: cd ./ does not work.
1998-02-17 02:57:16 +00:00
christos
ce0d4f06a6
Previous fix broke $var quoting. Try again differently :-)
1998-02-17 00:16:16 +00:00
christos
d8a1d3710c
Re-enabled EXP_RECORD
1998-02-05 08:34:49 +00:00
christos
f7c8df6d68
Fix bug introduced by EXP_RECORD, where in case there was a variable expansion
...
involved in the `for' list, the list was recorded twice, leading to incorrect
argument expansion.
Introduce ifsfree() function that free's the IFS region list, GC'ing duplicated
code.
1998-02-05 08:32:00 +00:00
thorpej
b65b5cae9e
Sigh, have to cast pointer diffs to long.
1998-02-04 23:49:25 +00:00
thorpej
a40a144d00
Fix printf formats so they work on the Alpha.
1998-02-04 20:10:16 +00:00
mikel
a235399817
back out last change until christos fixes EXP_RECORD; PR 4932
1998-02-04 06:25:55 +00:00
christos
5a36c00160
PR/4851: Benjamin Lorenz: In the "for <var> in <args>" construct <args>
...
was not marked as a region to be handled by ifsbreakup. Add EXP_RECORD
to indicate that the argument string needs to be recorded.
1998-01-31 12:45:06 +00:00
christos
2b259b0600
- Add gcc attributes to printf like functions
...
- Fix format strings to be const
- Fix buffer length to be size_t
- Add %p format
- Avoid code duplication in varargs/stdarg cases
1998-01-31 12:37:55 +00:00
christos
7faabd5800
Include our local includes after the system's ones.
1998-01-31 12:36:16 +00:00
christos
71868e12e2
Fix printf format.
1998-01-31 12:34:12 +00:00
christos
e3f5fb922f
BSD4_4 is a standard symbol in <sys/param.h>; make sure that files
...
that need this defined, include <sys/param.h> and don't define it in
the Makefile. Add a comment to that effect.
1998-01-21 10:47:37 +00:00
pk
5d9692a740
Define BSD4_4: quad_t's in struct rlimit;
1998-01-20 22:43:34 +00:00
christos
38c84eeda3
test for the boundary condition in the previous trailing blank fix
1998-01-16 16:26:22 +00:00
christos
2708e4180f
PR/4805: Ty Sarna: read builtin does not remove trailing blanks.
1998-01-15 19:39:11 +00:00
christos
505573954e
Unfortunately (as I expected) the previous change broke:
...
sleep
cmd='set `type "sleep"`; eval echo \$$#'
which=`eval $cmd`
echo $which
because the region did not get recorded at all, and it was interpreted as
a single word. I modified the code to keep track when the result of a
backquote expansion has been recorded to avoid recording it twice. I still
feel that this is not the right fix... More to come.
1997-12-01 14:43:20 +00:00
christos
81aad04920
Remove local declaration of getenv();
1997-12-01 14:40:16 +00:00
christos
b7e4df7784
PR/4547: Joern Clausen: Incorrect argument expansion in backquote variable
...
assignment. E.g.
echo ${foo:=`echo 1 2 3 4`}
prints:
1 2 3 1 2 3 4
because when the arquments are not quoted, the backquote result
gets recorded twice. The fix right now is to comment out the
record_region() call in expbackq(). I hope that it does not break
anything else.
1997-11-30 20:57:33 +00:00
cjs
af5956aa6b
Make this compile with -DSMALL and warnings on.
1997-11-12 03:40:55 +00:00
kleink
3780e6aa5d
Per 1003.2, the (builtin) read utility shall treat the backslash as an
...
escape character (including line continuation), unless the `-r' option
is specified:
* adopt to this behaviour, add the `-r' option to disable it;
* remove the `-e' option, which was previously necessary to get this behaviour.
1997-11-05 14:05:28 +00:00
christos
82ec25620f
pid should be pid_t and status should be int! Avoid alignment problems...
1997-10-15 13:23:10 +00:00
christos
946049095f
PR/4257: Jaromir Dolecek: Update for libedit interface change.
1997-10-14 15:06:42 +00:00
christos
e230a48b57
CFLAGS->CPPFLAGS
1997-10-10 19:47:50 +00:00
christos
7f2a271743
PR/3662: David Holland: Make /bin/sh use the symbolic macros for wait().
1997-10-08 20:31:52 +00:00
lukem
92d7aa0376
getopt returns -1 not EOF
1997-09-14 07:43:56 +00:00
thorpej
23eb2db171
Avoid a segv in bltinlookup() reported by Ronald Khoo <ronald@demon.net>
...
in PR #3929 , fix submitted by hiroy@NETCOM.COM (Hiroyuki Ito).
1997-08-26 20:09:59 +00:00
christos
23edbe3557
Remove WARNS=1 from all the subdirectory Makefiles, and add it to Makefile.inc
...
now that all /bin has been cleaned.
1997-07-20 22:36:20 +00:00
christos
c996803cad
PR/3888: Chris Demetriou: type command-with-slash prints
...
$PATH[0]/command-with-slash...
1997-07-20 21:27:35 +00:00
thorpej
d891aff808
Cast the result of pointer arithmetic to "long", and use %ld to print it.
1997-07-18 17:46:59 +00:00
christos
18ad58a639
PR/3866: bayer@informatik.uni-leipzig.de: core dump using xon script.
...
cmdenviron is pointing to varlist.list; varlist gets reset everytime
you enter evalcommand, but cmdenviron does not. The wonders of global
variables...
1997-07-15 17:49:15 +00:00
christos
1eb178df64
Fix Sparcworks warnings.
1997-07-15 17:45:53 +00:00
christos
bb5e01d099
Don't re-define setjmp/longjmp in the svr4 case
1997-07-15 17:44:32 +00:00
phil
1d304ac34c
Add a missing ) in the description of the builtin "set".
1997-07-10 23:07:04 +00:00
phil
64eb899e5a
Make code agree with man page in processing expansion of "$*".
...
Fix from PR 2647.
1997-07-07 20:41:10 +00:00
christos
5accccd051
Fix problem introduced in yesterday's commit that broke both signed and
...
unsigned character machines. So that people don't have to reverse engineer
this again:
mksyntax detects if characters are signed or not and builts a syntax
table that has a base of 129 for signed characters or 1 for unsigned
characters. This is so the largest negative signed char [-128] + the
base == 1. 0 is special and means end of file in both cases. PEOF
is -1 for the unsigned character case and -129 for the signed
character case, so that syntax[PEOF + base] == syntax[0] == CEOF
So PEOF has to be -1, but it is explicitly compared with
unsigned characters on machines where characters are unsigned.
The quick fix is to define UPEOF the (unsigned char) version of PEOF
and use that. A better fix is to always use unsigned characters
when referencing symbol table entries, but that would require
extensive changes to the shell. So to summarize
syntax[0] == CEOF, base + PEOF == 0
unsigned signed
base 1 129
PEOF -1 -129
1997-07-05 21:25:09 +00:00
christos
687f7852d9
Make the syntax tables work on machines where characters are unsigned.
1997-07-04 21:40:55 +00:00
christos
cd799663e4
Fix compiler warnings.
1997-07-04 21:01:48 +00:00
christos
28f5c57bd5
Don't roll own rules to build helper programs.
...
Add WARNS
1997-07-04 21:00:36 +00:00
christos
cbf48b75c7
PR/3827: Wolfgang Rupprecht: cd ./. core dumps
...
Warning cleanups
1997-07-04 20:59:40 +00:00
lukem
a1267d0c71
add auto-generated token.h to dependancy for ${OBJS}.
...
not everyone runs "make depend" ...
1997-06-16 02:42:38 +00:00
cjs
cddf57d923
Add documentation for ulimit command, courtsey of
...
Eric Fischer <eric@fudge.uchicago.edu>.
1997-05-23 19:40:30 +00:00
veego
3e90f9b423
Add mkinit.o mknodes.o mksyntax.o to CLEANFILES
1997-05-15 10:03:24 +00:00
mycroft
cc4a1553a1
Eliminate bogus redefinitions of standard targets.
1997-05-09 07:50:03 +00:00
gwr
10e180cc49
Back out the .PATH.c changes. The .depend problem (and others)
...
will be fixed using the new .NOPATH make feature instead.
1997-05-08 21:11:01 +00:00
gwr
012e528f2e
Use .PATH.c: ...
1997-05-06 20:44:56 +00:00
christos
fb758fd82b
PR/3452: Jerry Peek: Redirections of unopened fd to file failed.
...
for arg in a b c
do
echo hi this is $arg 1>&3
done 3> foo
1997-04-21 12:38:25 +00:00
thorpej
062f26f33b
- XXX Inhibit warnings on PowerPC for now - there are lots of
...
"char is unsigned" problems here.
- Add rules for mkinit, mknodes, and mksyntax that use the HOST_*
facilities, for cross-compiling.
1997-04-17 08:13:26 +00:00
christos
3a468199cb
#if __STDC__ -> #ifdef __STDC__
1997-04-11 23:08:40 +00:00
christos
360e930d42
Make this work on systems that don't have quads
1997-04-11 23:08:15 +00:00
christos
2c8f740e5c
__svr4__ -> __SVR4
1997-04-11 23:07:47 +00:00
christos
7ea7f895f5
Use #ifdef __STDC__ instead of #if __STDC__
1997-04-11 23:06:51 +00:00
christos
92cdde85e8
Fix so that this compiles on systems without quads and remove the double
...
inclusion of varargs/stdarg
1997-04-11 23:05:43 +00:00
christos
70bb105c67
Pointer arithmetic on void * is illegal but gcc does not care.
1997-04-11 23:03:08 +00:00
christos
23745b89db
Don't call getpwd() because if that fails the shell cannot start. (from scott)
1997-04-11 23:01:44 +00:00
christos
f726a3c453
Rename pread to preadfd
1997-04-11 23:00:40 +00:00
christos
3bddaec49b
add forward declaration of union node;
1997-04-11 22:58:40 +00:00
christos
7efa5addb4
Track $TERM and call the appropriate editline(3) routine to update the
...
terminal type.
1997-04-11 22:45:38 +00:00
christos
a0fa692d3b
PR/3352: From Hiroyuki Ito: ${#1} was not being expanded properly if there
...
was a need to allocated another stack block.
1997-03-18 18:54:40 +00:00
christos
7accaec421
NO_HISTORY->SMALL
1997-03-14 01:42:18 +00:00
christos
6042831b7e
Fix problems with -DNO_HISTORY
1997-03-13 21:57:32 +00:00
mycroft
3a59e5e8e3
Set input files to close-on-exec mode.
1997-03-13 20:07:49 +00:00
mouse
412433b44c
alternate -> alternative, per PR 2643
1997-03-08 13:26:20 +00:00
christos
6b7623a681
Fix PR/3289: upon initialization check if $PWD contains the right directory
...
and use it. We also maintain $PWD now, like the rest of the
shells.
1997-03-07 21:36:19 +00:00
christos
4a521d359f
varisset fixes:
...
- treat $0 specially since it is not in shellparams
- check the number of parameters instead of walking
the parameters array to avoid checking against the
null terminated element.
1997-03-03 19:26:18 +00:00
christos
edc5dadbab
PR/3269: Off by one in varisset(), caused variable substitution not to
...
count the last positional parameter as set.
1997-03-01 19:33:29 +00:00
christos
a5aaf55cf3
Fix PR/3258 sh -c 'echo $0' causes segmentation fault.
1997-02-25 17:51:50 +00:00
christos
680690d33c
add type builtin.
1997-02-06 23:24:52 +00:00
christos
6f224ae59f
Fix parsing problem introduced in the previous ${10} fix, where $#digit
...
or $digit# would get mis-parsed as a positional parameter.
1997-01-26 18:05:34 +00:00
christos
633ceb6db5
- varisset(): In positional arguments, take into account VSNUL so that:
...
set -- ""; echo ${1:-wwww} works.
- when expanding arithmetic, discard previous ifs recorded regions, since we
are doing our own scanning. x=ab; echo $((${#x}+1)) now works.
- in ${var#word} fix two bugs:
* if there was an exact match, there was an off-by-one bug in the
comparison of the words. x=abcd; echo ${x#abcd}
* if there was no match, the stack region was not adjusted and the rest
of the word was getting written in the wrong place. x=123; echo ${x#abc}X
1997-01-24 17:26:28 +00:00
christos
3d5f212ba8
enable parsing of multi-digit positional arguments i.e. ${10} works and it
...
is not a bad substitution.
1997-01-24 17:15:56 +00:00
tls
48250187e6
kill 'register'
1997-01-11 02:04:27 +00:00
cjs
5678a13f1b
Re-introduce some code from 1.14 (with modifications) to make the
...
shell's idea of the current working directory match reality when
symlinks (or anything else we can't stat) are traversed with the
cd command. However, this does not print out the cwd after cd
traverses symlinks, as it used to, though the capability is still
there should one want to use it.
1996-12-22 08:34:34 +00:00
christos
a00e49c200
Getopts bugs again (I'll never get this right).
...
- make sure that OPTIND is set correctly even in the absence of options.
- don't keep stale state between getopts calls.
1996-12-15 20:37:09 +00:00
christos
340077b543
- fix parsing bug reported by mycroft: ! was only recognized in the beginning
...
of pipelines. Now we are recognizing it everywhere like ksh, so:
! if [ a = b ]; then ! echo c && ! true; else ! echo d; fi
works.
1996-11-25 20:22:00 +00:00
christos
9530a32719
Fix bug in getopts code where the argument list got truncated.
...
From Todd Miller.
1996-11-24 20:48:01 +00:00
christos
07aeb5b266
remove a debugging printf that was left from the last POSIX error code fixes.
1996-11-09 01:04:07 +00:00
christos
ccce082dd2
Fix miscellaneous getopts problems:
...
- the 3 argument version of getopts would not reset properly
- OPTARG did not get cleared after a non argument option was found
- OPTIND was not set properly after a non argument option.
1996-11-06 01:17:10 +00:00
christos
846dce0ee3
Fix problems that gcc -Wall found (from Todd Miller, OpenBSD)
1996-11-02 18:26:03 +00:00
christos
a4ad4c0efc
A correction to the previous patch from Todd Miller.
1996-11-02 18:07:08 +00:00
christos
27e15e5bbc
echo ${1:-empty} did not do the substitution; from Todd Miller (OpenBSD)
1996-11-02 17:47:41 +00:00
cgd
8ba64baaaf
add builtins.h to the list of (built) headers depended on by ${OBJS}, so
...
make from 'cleandir' works.
1996-10-22 13:22:19 +00:00
abrown
e613224229
Remove leftover printf("here") from last change.
1996-10-19 02:38:36 +00:00
christos
bc73cf950a
PR/2808: Remove trailing whitespace (from FreeBSD)
1996-10-16 15:45:03 +00:00
christos
afb80e9b13
PR/2808: Add a definition for warnx() (from FreeBSD; currently unused)
1996-10-16 15:28:10 +00:00
christos
2b0a187f34
PR/2808: Use .Nm macro properly. (from FreeBSD)
1996-10-16 15:27:03 +00:00
christos
1a523dd56b
PR/2808: - Don't use p++ in macros.
...
- Hash using unsigned numbers.
(from FreeBSD)
1996-10-16 15:24:31 +00:00