thorpej
3ea17f6cff
Move the declaration of digit[] into the #ifdef'd code block that
...
uses it. Prevents a warning from gcc 3.2.
2002-04-09 00:52:05 +00:00
christos
e6ab6d48dc
PR/16174: Matthias Buelow: Job control fails on jobs that fd == 2 does not
...
point to a tty.
Unfortunately the shell assumed that it could do all process group
handling ioctls to fd=2, but this is not correct. Jobs that redirected
fd=2 would be unable to perform the ioctls and silently fail since
the error reporting channel is fd=2... Instead open /dev/tty set
it to close on exec, and use that instead (like all other shells
do). We don't handle the case where the OS does not provide FD_CLOEXEC
or FIOCLEX, because I am lazy.
While I am there:
- Simplify the code by defining functions for tc{g,s}pgrp when OLD_TTY_DRIVER
is defined.
- make sure that 'sh &' works by stopping itself. Don't kill the shell's
process group, kill the shell itself.
2002-04-03 14:30:44 +00:00
christos
c910c75b83
PR/16010: Andreas Gustafsson: wait is not interruptible.
2002-03-22 19:50:42 +00:00
simonb
668ba50fa3
In forkshell() don't free the current job. Fixes problem with previous
...
commit where pipeline commands didn't inherit the correct process group.
Reviewed by Christos.
Change a trace format string arg to use %p instead of %x and a long cast.
2002-03-12 03:45:02 +00:00
christos
bac9369a06
PR/15877: Ed Ravin: make sure that we cleanup enough of the job structure,
...
in jobfree() so that we don't fail when we use a malloc where free() trashes
freed memory.
2002-03-12 00:44:16 +00:00
christos
ccbeeb7cba
get rid of sp completely, we were free-ing a bogus pointer; found by simonb.
2002-03-12 00:14:31 +00:00
lukem
b799ed2973
first variable argument to "read" is not optional
2002-02-24 21:41:52 +00:00
christos
8b449b1ee8
enami convinced me that it is a good idea to use the first word of
...
the allocated area.
2002-02-20 21:42:35 +00:00
christos
06ea4006cb
PR/11542: Back-out previous change that caused
...
set -e
for x in a; do
BAR="foo"
false && echo true
echo mumble
done
not to echo mumble...
2002-02-14 21:51:41 +00:00
christos
6c02afd8c4
Since we should be able to handle nested double quotes, don't use
...
the syntax maps to determine the beginning and end quotes (kill
CENDQUOTE). Handle single quotes opening and closing via checking
the current syntax map. Keep a bitmap of doublequote state one bit
per variable nesting level. For the first 32 nested double quotes,
we don't need any additional memory, but for more we allocate
dynamically.
2002-02-12 20:32:35 +00:00
ross
79f9ab6771
back this directory up a day, systems won't even boot (rc.subr splodes)
...
suggested back-to-the-drawing-board test: $ echo "${PWD:-notlikely}"
2002-02-12 06:39:10 +00:00
christos
f63e9a1ed6
PR/15579: Alan Barrett: }'s inside variable specs were taken into account
...
even if quoted:
foo=${foo:-"'{}'"}; echo $foo
would display '{'} instead of '{}'.
2002-02-11 18:57:19 +00:00
christos
39d26b8867
Add a commented out -DDEBUG in CPPFLAGS.
2002-02-11 18:55:10 +00:00
christos
4398551708
Fix off by one in the display of var trees.
2002-02-11 18:54:30 +00:00
ross
dc5571b22e
Generate <>& symbolically. I'm avoiding .../dist/... directories for now.
2002-02-08 01:21:55 +00:00
lukem
9c2af9970a
.ifdef SMALLPROG, -DSMALL
2002-02-07 06:25:07 +00:00
wiz
5739c48f68
Punctuation nits, drop unnecessary .Pps, sort sections.
2001-12-20 20:07:40 +00:00
wiz
9f4702dcef
Punctuation nit.
2001-12-20 20:06:45 +00:00
wiz
3ebcdc5e43
Whitespace nits.
2001-12-20 19:31:48 +00:00
he
ed00fe0aee
Plug a memory leak when setting PWD -- don't mark the variable with
...
VTEXTFIXED because the value is dynamically allocated. Fix from
Tor Egge, FreeBSD PR#31533.
2001-11-14 18:04:36 +00:00
lukem
678a800f83
change from WARNS?=1 to WARNS?=2 for bin/
2001-11-03 13:40:30 +00:00
christos
0598afe4d0
Fix switch alias handling. Inspired from FreeBSD, but corrected to handle
...
alias expansion inside the switch as appropriate. This is achieved by a
flag noalias which is turned on and off in as we parse. In the following
example [1] and [0] indicate the value of noalias.
[0] case <expr> in
[1] <lit> ) [0] <expr> ;;
[1] <lit> ) [0] <expr> ;;
...
[1] esac [0]
FreeBSD does:
[0] case <expr> in [1]
<lit> ) <expr> ;;
<lit> ) <expr> ;;
...
esac [0]
This handles the following shell script:
alias a=ls
case $1 in
a) echo a;
a;;
f) echo f;;
*) echo default;;
esac
2001-11-02 23:49:14 +00:00
wiz
4c99916337
va_{start,end} audit:
...
Make sure that each va_start has one and only one matching va_end,
especially in error cases.
If the va_list is used multiple times, do multiple va_starts/va_ends.
If a function gets va_list as argument, don't let it use va_end (since
it's the callers responsibility).
Improved by comments from enami and christos -- thanks!
Heimdal/krb4/KAME changes already fed back, rest to follow.
Inspired by, but not not based on, OpenBSD.
2001-09-24 13:22:25 +00:00
itojun
31952d578f
make sure we do not truncate arith expresssion > 10 digits.
...
freebsd bin/sh/expand.c revision 1.15. NetBSD PR 13943.
2001-09-19 06:38:19 +00:00
wiz
456dff6cb8
Spell 'occurred' with two 'r's.
2001-09-16 16:34:23 +00:00
assar
50ed29b359
(waitproc): handle jp == NULL, it happens
2001-09-13 21:33:05 +00:00
christos
a7560f06ec
Don't wait with UNTRACED for jobs that have not been started with job control
...
(i.e. processes started from shell scripts). Fixes problem where kill -STOP'ing
a subprocess of a shell script would cause the shell to proceed to the next
command.
2001-09-10 15:47:03 +00:00
lukem
c0b18597d8
fix grammar
2001-06-13 08:48:06 +00:00
wiz
40ac848024
Fix various misspellings of compatible/compatibility.
2001-06-11 01:50:48 +00:00
bjh21
45a6b58c3e
Use ${MACHINE_CPU} == "arm" to test for ARMishness.
2001-04-18 17:35:36 +00:00
christos
ea8e5cf90b
PR/12533: Koji Mori: eval gets misparsed when it has a trailing semi-colon.
2001-04-03 15:00:11 +00:00
wiz
242b959069
Don't xref set(1) and case(1), since they are builtins and we don't
...
have separate man pages for them.
Xref passwd 5 instead of 4, environ 7 instead of 5, and comment out xref
to profile(4), which we don't have.
Improve markup of SYNOPSIS.
Some whitespace fixes while I'm here.
2001-04-03 10:56:03 +00:00
toddpw
e08886d505
Correct {list;} example and fix formatting/typo in the operator lists.
2001-04-01 02:15:45 +00:00
mycroft
59771e308b
Globbing should match broken symlinks. stat()->lstat() to fix this.
2001-03-30 17:45:00 +00:00
wulf
8d23cb0373
Extended functionality of the trap builtin, which now closely follows
...
POSIX recommendations.
- trap now accepts signal names and signal numbers
e.g. INT, SIGINT, 2
- added option -l that outputs a list of valid signals
- added signal EXIT to list of valid signals
- a `-' in the action part will reset specified signal to their
default behaviour
- changed standard output format to make it suitable as an input
to another shell that achieves the same trapping results
2001-03-18 04:04:23 +00:00
wiz
8d35854b5d
Fix command name in error message for 'sh nonexistingfile'.
2001-02-26 13:06:43 +00:00
christos
3380980447
remove redundant declarations and nexted externs.
2001-02-04 19:52:06 +00:00
christos
80d86b9e7c
remove redundant declaration of yyparse, and move code to the bottom of
...
the file.
2001-02-04 19:51:43 +00:00
lukem
10fc746e6d
if HAVE_VASPRINTF (set ifdef BSD4_4), use vasprintf() instead of homegrown
...
code in doformat(). results in slightly smaller /bin/sh. idea suggested by
Witold J. Wnuk <witek@pd37.warszawa.sdi.tpnet.pl>, approved by christos.
2001-01-07 23:39:07 +00:00
lukem
dd7296f47a
support %ll (as synonym for %q) in doformat(), since my changes to %q -> %ll
...
broke this :/
problem reported in private email by Witold J. Wnuk.
<witek@pd37.warszawa.sdi.tpnet.pl>.
2001-01-07 22:19:53 +00:00
lukem
f819878ce7
use more standard %ll_ in favour of %q_
2001-01-04 15:39:50 +00:00
bjh21
c9ee8d3362
arm26 has unsigned chars too.
2000-12-29 16:30:31 +00:00
cgd
84d782a52f
__CONCAT does token pasting, not string concatnation. if something like:
...
__CONCAT("PATH=",_PATH_STDPATH);
actually works to concantate strings, it's because the preprocessor expands
it into "PATH=""whatever _PATH_STDPATH is" as separate strings, and then
ANSI string concatenation is performed on that. It's more straightforward
to just use ANSI string concatenation directly, and newer GCCs complain
(rightly) about mis-use of token pasting.
2000-12-20 00:15:10 +00:00
christos
1d9dab3e95
error message cleanup:
...
- don't print the builtin name twice
- explain why things fail
- no extra newline
2000-11-22 19:20:31 +00:00
christos
212627911f
fix typo.
2000-11-20 17:48:05 +00:00
christos
fb16d6d0ec
Add an example on how to use getopts, stolen from the getopt manual page :-)
2000-11-20 16:59:56 +00:00
mycroft
3112db7eb8
Call el_source() to use .editrc.
2000-11-06 04:21:14 +00:00
christos
8e2797bc1e
PR/11283: Hubert Feyrer: random memory corruption executing commands:
...
Fix from FreeBSD:
growstackblock() sometimes relocates a stack_block considered empty
without properly relocating stack marks referencing that block.
The first call to popstackmark() with the unrelocated stack mark
as argument then causes sh to abort.
Relocating the relevant stack marks seems to solve this problem.
The patch changes the semantics of popstackmark() somewhat. It can
only be called once after a call to setstackmark(), thus cmdloop() in
main.c needs an extra call to setstackmark().
2000-11-01 19:56:01 +00:00
christos
9cc4e15f46
handle type command on names that contain slashes, and print a : in the not
...
found case. From FreeBSD.
2000-11-01 19:21:41 +00:00
mycroft
8f48358936
Wrap malloc() calls with an INTOFF/INTON pair. Fixes PR 8414.
2000-10-21 04:37:17 +00:00
phil
34ad57a779
.Bl takes parameter "-offset indent", not "-indent".
2000-09-21 21:04:56 +00:00
kleink
2caf6aacdd
For commands and utilities, use EXIT STATUS rather than RETURN VALUES as
...
appropriate (and documented in mdoc(7)).
2000-09-04 07:30:07 +00:00
hubertf
1cb54f68ac
Add 'RETURN VALUE' section header.
2000-08-28 02:11:04 +00:00
cgd
2a1ee59131
un-__P functions declared in parser.h. host programs include parser.h,
...
and so it shouldn't use __P. (this should probably be done better, by
not declaring the parser functions in headers used by host programs,
but this works well enough.)
2000-07-27 04:09:27 +00:00
cgd
96df053cba
host program portability: set infp to stdin at runtime, since apparently
...
some systems (e.g. linux) define stdin in such a way that it can't
be used to initialize values at compile time.
2000-07-27 04:06:49 +00:00
cgd
28728fd305
host program portability: don't use <sys/cdefs.h>, __COPYRIGHT(),
...
__RCSID(), or __P(). (these programs have been de-__P()'d.)
Repeat after me: "Not all cross-compilation host systems are NetBSD."
2000-07-18 19:13:20 +00:00
jhawk
9d53f2aee6
Various mandoc updates to the Builtins
...
section; mostly .Ic, a few other nits.
2000-07-18 01:55:48 +00:00
jhawk
45a8e6b7e3
Note the meaning of 'trap 0' (execute on exit from shell)
2000-07-17 21:18:47 +00:00
matt
e2056eada9
include <stdlib.h>, <string.h>, or whatever as appropriate to shut up
...
gcc 2.96
2000-07-03 03:26:17 +00:00
elric
e6bccfe4be
Back out previous vfork changes.
2000-05-22 10:18:46 +00:00
elric
f5dccf4728
When vforking ensure that the environment passed to exec is built before
...
vforking as a set of local variables which can be popped by the parent.
Addresses bin/10124.
2000-05-17 07:37:12 +00:00
elric
e8b0f2b813
INTON and FORCEINTON modify global variables, and so should not be
...
executed while we are vforked.
2000-05-15 03:42:48 +00:00
elric
c55fa30be8
Added includes for waitpid, sys/types.h and sys/wait.h.
2000-05-13 21:11:45 +00:00
elric
a0ef2ea948
In order to use __NetBSD_Version__, I needed to include sys/param.h.
2000-05-13 21:11:16 +00:00
elric
0eece24a3a
Unused variable pgrp on line 576.
2000-05-13 20:59:41 +00:00
elric
4aeaa113a7
Quick fix.
...
jobs.h:91: warning: declaration of `vfork' shadows global declaration
2000-05-13 20:56:08 +00:00
elric
756a2ca1bd
Now we use vfork(2) instead of fork(2) when we can.
2000-05-13 20:50:14 +00:00
simonb
d2f6a4723d
Include <errno.h> instead of using "extern int errno;".
2000-04-14 05:54:20 +00:00
simonb
51ee9dc68d
Don't declare 'extern opt*' getopt variables.
2000-04-14 05:52:56 +00:00
christos
b252543484
PR/9847: Geoff C. Wing: Make test(1) a builtin.
2000-04-09 23:27:03 +00:00
soren
1594850f00
Fix doubled 'the' in comment.
2000-03-13 22:46:59 +00:00
christos
9fcfbaea4d
Fix problem where commands that caused exitstatus != 0 inside loops did
...
not cause the shell to exit when -e was set.
2000-02-09 20:26:53 +00:00
christos
d6ac7627ea
Fix bin/9184, bin/9194, bin/9265, bin/9266
...
Exitcode and negation problems (From Martin Husemann)
2000-01-27 23:39:38 +00:00
hubertf
a8bbeb8a4b
Add under which conditions the "read" builtin returns success/failure.
...
Suggested in PR 8813 by Eric Mumpower <nocturne@arepa.com>
1999-11-16 22:03:25 +00:00
mrg
1b23e7d142
back out previous; it causes /etc/rc to break on my alpha and other lossage as reported in PR#8614
1999-10-13 00:59:10 +00:00
pk
ef45922abf
Backtrack `exitstatus' to make the shell really ignore the status
...
of `tested commands' as in this example:
set -e
true; false && echo "not reached"
1999-10-10 21:22:24 +00:00
pk
8c06f48e15
Sprinkle some `const's in DEBUG bracketed code.
1999-10-08 21:10:44 +00:00
bouyer
d406538de6
xref sysctl(8) (for proc.<pid>.rlimits)
1999-09-28 14:54:41 +00:00
mjl
4c5c12b3f0
Mention -c option to sh(1), noticed by Matthew Aldous in PR/8499.
1999-09-27 19:34:25 +00:00
mycroft
2806df576c
It turns out that the code disabled in revision 1.30 *does* have an important
...
function (which nobody was able to explain): it's critical to allowing a
complex command run from an interactive shell to be terminated. So, reinstate
it and fix it correctly. See the comment if you really want the gory details.
1999-08-31 08:58:47 +00:00
christos
3d42469030
compile with WARNS = 2
1999-07-09 03:05:49 +00:00
christos
f914977fae
add -q in the synopsis line
1999-07-06 14:01:01 +00:00
christos
02048e84df
PR/7814: Matthias Scheler: shell does not fork for builtins in backquotes,
...
leading to unexpected behaviour. Disable the no-fork optimization for now.
We need to revisit this and keep enough state around to recover from such
changes.
1999-06-26 16:31:47 +00:00
he
e97b0193be
Fix for bin/7502, from Tor Egge / FreeBSD. Their commit message:
...
> During variable expansion, the internal representation of the expression
> might be relocated. Handle this case.
1999-04-30 17:54:17 +00:00
he
4e69294c60
Correct a rather obvious typo (once Tor Egge pointed it out to me)
...
in the last change.
1999-04-06 21:05:27 +00:00
mycroft
2e23138ad7
If we exit due to a SIGINT, do it with raise() so that the wait status is
...
correct in the parent.
1999-04-05 15:00:28 +00:00
mycroft
c06643b836
Disable bogus-looking code that cause us to throw away SIGINTs.
1999-04-05 14:59:35 +00:00
christos
832949b912
When we execute commands from a shell script, make sure that the signals
...
are being caught (reported by Alexis Rosen), similar to the -c case.
#!/bin/sh
vi "$@"
^C when the script is running...
1999-03-27 13:46:19 +00:00
christos
28607542af
PR/7231: Havard Eidnes: Shell quoting/trimming problem
1999-03-26 15:49:34 +00:00
ross
4b1d9297dc
Make the `...' actually appear in the case/esac syntax section.
...
Fix a space botch in the $@ example.
Kill warnings caused by the effective but wrong use of \[ and \] to
perform the function of \&[ and \&].
1999-03-23 02:29:29 +00:00
garbled
f124765044
More and more .Os cleanups. .Os is defined in the tmac.doc-common file,
...
so we shouldn't override it with versions in the manpages. Many more to
come.
1999-03-22 18:25:43 +00:00
castor
dc67d78474
Add '#include <sys/types.h>' since that's where int8_t and u_int8_t can
...
usually be found.
1999-03-08 17:55:20 +00:00
wrstuden
6790f70d78
Make cross-building from i386 to powerpc (from signed to unsigned char)
...
ports work right.
1999-02-23 01:50:26 +00:00
christos
96a46ed7b1
Fix off-by-one error in the starting point to search for an arithmetic
...
expression.
1999-02-06 17:23:09 +00:00
tron
96dc868859
Remove "arith.h" while cleaning.
1999-02-05 22:19:47 +00:00
christos
1666f88d5d
Fix the -c problem differently. We cannot just ignore SIGINT etc, otherwise
...
we cannot interrupt sh -c <command>
1999-02-05 21:21:27 +00:00
christos
b4c9a78425
PR/5577: Craig M. Chase: sh does not build with PARALLEL set.
...
- Added YHEADER in Makefile, removed arith.h and adjusted the sources.
1999-02-05 07:52:51 +00:00
christos
6e50d7a816
PR/4966: Joel Reicher: Implement <> redirections which are documented in
...
the man page.
1999-02-04 16:17:39 +00:00
christos
dd65252560
PR/1788: Shinya Taniguchi: sh -c does not setup signals properly.
...
[Reminded to me by Alexis Rosen -- thx!]
1999-02-04 11:20:40 +00:00
cjs
9063efaca0
Add -q option, which when used with -v and/or -x, turns off the tracing
...
during the execution of /etc/profile, .profile and $ENV.
1999-02-04 00:27:07 +00:00