christos
d8c242f0ae
PR/2808: - detect eof inside backquotes
...
- handle && and || shortcircuits properly
- tokens.def -> tokens.h
(from FreeBSD)
1996-10-16 14:53:23 +00:00
christos
10a76271de
No need to have 2 declarations for the same constant string, one for K&R and
...
one for STDC...
1996-10-16 14:51:24 +00:00
christos
fd8c99438e
PR/2808: POSIX 1003.2: first arg after -c cmd is $0, remainder $1...
...
(from FreeBSD)
1996-10-16 14:49:56 +00:00
christos
14185e5152
PR/2808: Kill use of error2() (from FreeBSD)
1996-10-16 14:49:03 +00:00
christos
71ab1d0aed
PR/2808: tokens.def -> tokens.h
1996-10-16 14:47:49 +00:00
christos
03ba3cf0d6
PR/2808: Use the <ctype.h> functions instead of our homegrown tables to
...
determine if a character is alpha or alphanumeric, so that NLS
works... now if only our NLS really worked... (from FreeBSD).
1996-10-16 14:46:35 +00:00
christos
f6c00506fc
PR/2808: Remove extraneous newline from error message (from FreeBSD)
1996-10-16 14:44:28 +00:00
christos
00a9e38ee8
PR/2808: #undef things that we #define to avoid duplicate definitions.
...
(from FreeBSD)
1996-10-16 14:43:37 +00:00
christos
a20d79429a
PR/2808: Don't include <sgtty.h> unless OLD_TTY_DRIVER is defined.
...
Remove extraneous newline from error messages.
1996-10-16 14:42:20 +00:00
christos
435812e77d
PR/2808: Remove extraneous newlines from error routines (from FreeBSD)
1996-10-16 14:40:32 +00:00
christos
4b99c4d748
PR/2808: Fix parsing of $n where n > 9 (from FreeBSD)
1996-10-16 14:38:58 +00:00
christos
2a9c11dd53
PR/287: Shell does not exit with 126/127 when permission denied/
...
command not found. Add extra exception type and generalize
error handling routines to take that exception type. Use
a global variable exerrno to keep the last exec error.
1996-10-16 14:35:42 +00:00
christos
886c875a97
PR/287: Exit with 127/126 when command is not found/permission denied.
...
PR/2808: don't bomb out on "set -e; false && true"
1996-10-16 14:31:57 +00:00
christos
dd6abbc5c3
PR/2808: Handle cd "". This is for systems where "" != "."
1996-10-16 14:29:42 +00:00
christos
aded8d4c14
PR/2808: tokens.def -> tokens.h
1996-10-16 14:24:56 +00:00
christos
3ec8ea2b0e
PR/2808: Depend and clean fixes from FreeBSD
1996-10-16 14:23:51 +00:00
thorpej
47f181309b
If getcwd() fails, dang it, I want to know _why_.
1996-09-18 22:47:48 +00:00
mycroft
c65b90450d
ioctl(TIOC[GS]PGRP) -> tc[gs]etpgrp()
1996-09-17 14:44:05 +00:00
christos
4d9c694460
Apply PR#2721 from VaX#n8: make man page more lucid in places.
1996-09-02 21:28:21 +00:00
christos
29cad877cd
Don't infinite loop with:
...
unset var
echo ${var:=}
1996-09-02 21:25:52 +00:00
christos
beb57fb35d
- Add function callback capability when variables are set.
...
- Add setvarsafe that returns an error instead of longjmp() to the
error code.
1996-06-25 16:49:05 +00:00
christos
cc31700a92
- Add getoptsreset to be used as a callback function when OPTIND is set.
...
This is used to implement the POSIX behavior when OPTIND=1
- Call setvarsafe instead of setvar. If one ran
"getopts optstr badvariable"
where badvariable contained an illegal variable name, there was no way
to recover, since setvar() would longjmp on the error.
1996-06-25 16:47:43 +00:00
christos
02b3c16118
change sethistsize() to take the history size as an argument so it can
...
be used directly by the new variable callback functions.
1996-06-25 16:43:33 +00:00
christos
9a738ef22d
const poisoning.
1996-06-25 16:40:38 +00:00
christos
70ad20e9f1
Include header files to get function prototypes; don't use home grown ones.
1996-06-25 16:40:06 +00:00
christos
0bc88b2434
getopts fixes:
...
1. OPTIND value was not computed correctly when the argument was part of the
option string (i.e. for "l:" "-l 1" was working "-l1" was not). (PR/2505).
2. OPTARG was not being unset in case of errors [in the non POSIX error case].
3. optvar could be set to random values.
4. Option string starting with a : was not treated specially as POSIX
specifies (if the option string starts with a :, then there is no
error printed when there are missing option arguments or illegal options,
and OPTARG and optvar are being set specially).
5. Implemented getopts "opts" optvar [arg]. The optional argument case
was not implemented.
To do:
- what does Posix say about resetting the getopts state? Bash does it
by setting OPTIND=0; is that correct? Should we be doing the same thing?
- should we be using getopt(3) for everything internal to the shell? Is that
feasible because we might need to handle multiple invocations at once.
1996-06-04 21:00:09 +00:00
christos
66824391d1
Fix PR/2504: return with no args returns 0 instead of the return value of
...
the previous command in functions
1996-06-03 12:21:17 +00:00
cgd
edc0ef345c
Fix growstackblock() 'newlen' calculations:
...
(1) it needs to be ALIGNed for both halves of the 'if,' and
(2) if you're going to claim that you now have ALIGN(newlen)
bytes left, you should have actually allocated
ALIGN(newlen), rather than just 'newlen' bytes.
1996-05-20 14:49:32 +00:00
christos
55a41e8abb
Close PR/2384 backquoted backslash-newline was not eaten.
1996-05-09 19:40:08 +00:00
pk
0b9acf16f8
Return zero status if `else' clause is empty.
1996-03-06 14:49:29 +00:00
christos
b09ffc42b1
- parser.c: Fix prompting in old style backquote expansion. Fixes PR/2139
...
and many user complaints why the shell hangs in echo "`"
- eval.c: Fix exitstatus invalid resetting in `if' statements were:
if (exit 3); then
echo foo $?
else
echo bar $?
fi
printed 'bar 0' instead of bar 3
1996-03-05 21:03:52 +00:00
jtc
16f5230c39
Changed so that cd builtin doesn't do wierd stuff when cd'ing through
...
symlinks. From Chris Demetriou <cgd@NetBSD.ORG>. Fixes PR #1776 .
Changed so that INTOFF/INTON are paired in getpwd(). From Matthias
Pfaller <leo@marco.de>. Fixes PR #2130 .
1996-03-01 01:58:58 +00:00
mycroft
b5b9e1d0fa
Fix problems with the way init.o is built:
...
* Prevent gratuitous rebuilds when nothing has changed.
* Make sure it's rebuilt if a .h file is updated.
From Mike Long, PR 1454.
1996-02-18 12:29:18 +00:00
christos
d3aec2060d
Fix PR/2070: Ksh style variable modifiers were broken in /bin/sh, from
...
enami tsugutomo
1996-02-12 15:11:41 +00:00
christos
ff008dabf6
Fix PR/1760, where 'cd -' before any other command could cause a reference
...
to an uninitialized pointer. Use getcwd() to get the current working directory,
instead of forking /bin/pwd [per Scott's suggestion]
1995-11-19 23:27:37 +00:00
christos
c22dddc4e0
Parallel make fixes.
1995-10-22 00:15:02 +00:00
christos
893ade3fac
- fix PR1620, -DNO_HISTORY did not work.
...
- restore parsing state after parsing old style command substitution.
The ';' in '`echo z;`' broke the following:
for i in 1; do
cat > /dev/tty << __EOF__
`echo z;`
__EOF__
done
cVS: Enter Log. Lines beginning with `CVS: ' are removed automatically
1995-10-19 04:14:37 +00:00
christos
92380da725
fixed previous booboo that broke command line editing input.
1995-10-06 21:38:18 +00:00
christos
c1b02d9bff
- Fix -v flag, so that it works properly when the shell reads from scripts.
...
- Bad style to fix my own PR, but I'd like to commit the parallel make
changes soon, and this is a necessary prerequisite.
1995-09-26 13:25:19 +00:00
jtc
d4fe82df8d
Handle %q format directive; from Mike Long (PR #1454 ).
1995-09-14 16:19:06 +00:00
christos
f9382bca1a
Fix return builtin to work like it does in ksh:
...
When not in a function, it skips the rest of the current input file.
Instances of `return' outside function definitions were previously ignored.
What does joe posix have to say about this?
[fixes PR/1444]
1995-09-11 17:05:41 +00:00
christos
782cb68126
Fix bin/1240, from Dennis Ferguson. the exit builtin with no arguments
...
should return the exitcode of the previous command but it always returned 0.
1995-07-20 15:04:16 +00:00
pk
edae5ead03
Relocate pointers after re-allocation of the job table.
1995-07-04 16:26:45 +00:00
jtc
88fc62fe16
Changed type of rlimit values from quad_t to rlim_t. Cast rlim_t's to
...
quad_t's and use "%qd" in printf.
Eliminated unneccessary conditional.
1995-06-12 19:44:16 +00:00
mycroft
332b7d5213
Add a DPADD.
1995-06-10 20:19:40 +00:00
christos
a45947b2a4
Changed so that 'PATH=newpath command' works, instead of looking at the
...
old path. Synced input.c with vangogh.
1995-06-09 01:53:44 +00:00
cgd
dcb82cbdbc
needs string.h
1995-06-07 16:28:03 +00:00
christos
9d255ec409
Ignore result of sigaction when setting traps. Traps will succeed even
...
on SIGKILL or SIGSTOP. This is what other bourne shells do. (suggested
by mycroft)
1995-06-07 04:16:57 +00:00
christos
b842cc2784
Avoid trapping SIGKILL. Pretend that we did, so that we will not keep
...
failing trying to trap it later. This is what the other bourne shells do.
1995-06-05 14:24:33 +00:00
christos
58e18fc330
Fixed bug where
...
$ cat foo
echo $FOO
$ FOO=1 . ./foo
$ echo $FOO
Did not echo 1 at all. Now variable assignments before sourced scripts
are honored during and after the execution of the script.
1995-05-28 18:09:48 +00:00
christos
4fb6f609aa
Changed so that syntax errors (EXERROR) set the exit status to 2,
...
and commands that are not found set the exit status to 1 like all
other bourne shells.
[It used to be 0 and 2 respectively]
1995-05-19 15:08:55 +00:00
christos
56a08eccca
Fixed bug where ${#} was interpreted incorrectly as ${#var} and thus
...
misparsed. Keith Bostic reported it.
1995-05-17 00:05:25 +00:00
cgd
b5f33fc18e
re-add an #endif that was (apprently) clobbered.
1995-05-15 03:29:54 +00:00
christos
fbac2e9de2
Fixed new bug the previous fix introduced:
...
false
foo=bar
echo $?
would print 1
Also fixed the long standing bug:
false
echo `echo $?`
would print 0
The exitstatus needs rethinking and rewriting. The trial and error method
is not very efficient
1995-05-15 02:47:38 +00:00
christos
2e1970487e
Fixed bug caused by previous x=false
not preserving the exit status fix.
...
The if statement exit status broke...
1995-05-14 04:19:18 +00:00
christos
07bae7eddd
Merge in my changes from vangogh, and fix the x=false
; echo $? == 0
...
bug.
1995-05-11 21:28:33 +00:00
christos
dae6c6b963
Added missing resource limits and recognize "unlimited" as RLIM_INFINITY
1995-04-11 03:17:45 +00:00
christos
df504509f1
1. Don't core dump on 'fc -l' (From Gerard J van der Grinten)
...
2. PATH=xxx ls, does the PATH assignment first and then tries to find ls in xxx
3. VAR=xxx exec ls, does the variable assignment.
1995-03-31 21:58:09 +00:00
christos
6ee2193d9a
Reverted to set - turning off -x and -v. Charles corrected me... It is part
...
of POSIX.
1995-03-26 17:25:10 +00:00
christos
ad1f891148
set -
...
does not anymore clear the -x and -v flags. This was incompatible with
all other bourne shell implementations.
1995-03-25 23:45:24 +00:00
mycroft
6bfd77e432
Fix typo in previous.
1995-03-23 00:01:03 +00:00
mycroft
3e417cced4
Use sigprocmask(), not sigsetmask().
1995-03-21 15:40:16 +00:00
cgd
49f0ad8601
convert to new RCS id conventions.
1995-03-21 09:01:59 +00:00
christos
5c42185b5c
Oops... typo in the IFS previous fix.
1995-02-28 23:27:24 +00:00
christos
6ab1954578
Changed so that backquote expansion eats all trailing newlines, not just
...
the last one.
Reported by guido@gvr.win.tue.nl (Guido van Rooij).
Repeat By:
echo "`cat file-with-many-newlines`"
1995-02-28 23:09:43 +00:00
christos
3936aab031
Changed IFS string-splitting so that it breaks spaces even when IFS does not
...
begin with a space, but contains one. Fixes PR bin/809.
#!/bin/sh
list="a b c "
echo "With ordinary IFS"
for i in $list;do
echo $i
done
IFS=":${IFS}"
echo "With changed IFS"
for i in $list;do
echo $i
done
Note that before the fix ":${IFS}" behaved differently than "${IFS}:".
1995-02-28 22:46:12 +00:00
mycroft
f5ad44b6ac
Use S_IS*().
1995-01-30 19:30:13 +00:00
christos
ad8d5369f5
I added the documented in the manual but not implemented variable expansions:
...
${#WORD}
${WORD%PAT}
${WORD%%PAT}
${WORD#PAT}
${WORD##PAT}
1995-01-23 06:33:03 +00:00
mycroft
4d643bf207
Remove `.' from default PATH.
1995-01-20 18:21:16 +00:00
mycroft
c4459d08d9
Clean up deleted files.
1995-01-15 10:15:19 +00:00
mycroft
4bcd14e0b4
Remove the gratuitous `security' warning.
1995-01-15 09:29:16 +00:00
jtc
cc9fe5ba6d
Describe the : shell builtin.
...
Fixes PR #712 .
1995-01-12 23:35:56 +00:00
mycroft
e848bd4fb5
Fix that last bug in a less expensive way.
1994-12-31 23:56:54 +00:00
cgd
809218efc4
take two: make grabstackstr() work correctly, in the face of strange filling.
1994-12-31 01:56:16 +00:00
mycroft
1c21834ccb
Remove previous misguided change.
1994-12-30 06:33:59 +00:00
cgd
58f1733118
be more careful with casts.
1994-12-23 13:24:39 +00:00
cgd
42f0dae5e3
pull prototypes into scope for string functions.
1994-12-23 13:24:10 +00:00
cgd
17ed2a67b2
pull some prototypes into scope.
1994-12-23 13:22:13 +00:00
cgd
e9aebcc9d8
don't play fast and loose with memory block allcation. try to allocate
...
in more-round sizes, but realize that not everybody will fill them up
exactly.
1994-12-23 13:21:01 +00:00
cgd
db1ae625b5
eliminate two wrong-sized variables which were unused.
1994-12-23 13:20:10 +00:00
cgd
73cf954189
adjust; from jimj.
1994-12-06 19:13:02 +00:00
cgd
4ce0d34a31
clean up further. more patches from Jim Jegers
1994-12-05 19:07:32 +00:00
cgd
5dad143982
from James Jegers <jimj@miller.cs.uwm.edu>: quiet -Wall, and squelch
...
some of the worst style errors.
1994-12-04 07:11:37 +00:00
jtc
6cd3ad1d11
ulimit builtin (PR #388 )
...
This public domain code, originally by Doug Gwyn, Doug Kingston, Eric
Gisin, and Michael Rendell was ripped from pdksh 5.0.8 and hacked for
use with ash.
1994-11-04 17:13:27 +00:00
mycroft
06f53b6838
Eliminate uses of some obsolete functions.
1994-09-23 11:28:39 +00:00
mycroft
d22a514772
Fix problem with character classes matching a terminating NUL, from Henry
...
Spencer.
1994-08-29 01:54:39 +00:00
mycroft
08a6730054
Fix a core dump and another parse error related to null commands.
1994-08-24 05:48:26 +00:00
jtc
8cc67c8556
Don't source the file specified by $ENV if either the real and effective
...
user IDs or the real and effective group IDs of the process are different.
Thanks to Mark Weaver who pointed this out in PR 262.
1994-08-03 16:25:26 +00:00
jtc
7acf86db2f
Don't dump core when evaluating X % 0.
...
Simplify lexer by using %prec feature in yacc grammar.
Implement most of the operators required by POSIX.2.
1994-07-15 23:45:30 +00:00
mycroft
aaed410145
Fix some problems with empty commands.
1994-07-07 20:53:32 +00:00
mycroft
188b97d955
Bandaid quoting.
1994-07-07 16:24:34 +00:00
mycroft
32a94e53c4
Clean up deleted files.
1994-06-24 07:33:21 +00:00
jtc
4aece6a461
Renamed builtins to builtins.def to eliminate make's (incorrect) circular
...
dependancy between the builtins data file and builtins.c.
The bug only occured when there was no obj directory, and is a result of
NetBSD's better (compared to 4.4lite's) default make rules.
Fixes bug #301 .
1994-06-24 07:33:12 +00:00
mycroft
2efb881840
Re-fix an old bug.
1994-06-15 04:13:46 +00:00
jtc
918ce04f57
From Christos:
...
1. Fix `-' quoting in [ ] expressions.
2. Fix expansion of variables in redirections
1994-06-14 05:49:19 +00:00
jtc
212ba62f56
Set the status variable ($?) to 0 after a successful variable assignment.
1994-06-12 02:31:28 +00:00
mycroft
cafd1f7e9f
Add RCS ids.
1994-06-11 16:11:35 +00:00
jtc
7210460c54
Fix from Christos for when NO_HISTORY is defined
1994-06-08 19:26:51 +00:00
pk
cefd9f107c
Exclude mkinit' from argument list to
mkinit'; this especially causes
...
trouble when compiling with `-g'.
1994-06-02 09:10:58 +00:00
jtc
20ddd6eee4
Fixed another case statement parsing bug that was introduced by my
...
last fix :-(. Thanks to Theo for letting me know about it...
1994-06-01 21:36:54 +00:00