christos
e3fc7d5ba9
use .ORDER for rules that create multiple files.
2009-12-14 05:13:38 +00:00
uebayasi
b79e178285
Rewrite file generation rules using ${GENCMD}. No functional changes intended.
2009-12-11 08:39:42 +00:00
uebayasi
58b17edd41
Define dependencies of arith.[ch] on arith.y.
2009-12-07 16:22:41 +00:00
tsutsui
49ee47d09d
Use %zu in printf format for size_t value.
2009-11-27 10:50:04 +00:00
gson
dddcd98c78
Removed return statement in parser action that caused a memory leak with
...
the new yacc, making "sh MAKEDEV -MM init" consume 27 MB of virtual memory
with the result that NetBSD could no longer be installed on a 32 MB system.
2009-11-13 13:49:09 +00:00
christos
5dfc26d510
use flex options instead of #defines
2009-10-29 14:21:40 +00:00
christos
10aa8c24e9
only for when trap if we are going to exit.
2009-10-07 18:12:11 +00:00
christos
40ab82d3c3
fix regression exit1: Don't exec the last command in a subshell if it has
...
trap[0] (trap EXIT) set. Fork instead to give the shell a chance to execute
the trap when it is done.
2009-10-06 20:05:10 +00:00
apb
db8f79df3d
Make this slightly more portable; it has to run on arbitary host
...
platforms at build time. Previousy, some shells were confused by
some of the "[ ... ]" tests.
2009-10-06 19:56:58 +00:00
joerg
f29cf7b612
Make indentation consistent.
2009-05-26 07:30:51 +00:00
drochner
0fa7059102
define YY_NO_INPUT where appropriate, from Kurt J. Lidl per PR misc/41160
2009-04-20 16:05:29 +00:00
wiz
7d6100a52d
Bump date for previous.
2009-03-29 08:54:10 +00:00
mrg
fcc023545e
- add new RLIMIT_AS (aka RLIMIT_VMEM) resource that limits the total
...
address space available to processes. this limit exists in most other
modern unix variants, and like most of them, our defaults are unlimited.
remove the old mmap / rlimit.datasize hack.
- adds the VMCMD_STACK flag to all the stack-creation vmcmd callers.
it is currently unused, but was added a few years ago.
- add a pair of new process size values to kinfo_proc2{}. one is the
total size of the process memory map, and the other is the total size
adjusted for unused stack space (since most processes have a lot of
this...)
- patch sh, and csh to notice RLIMIT_AS. (in some cases, the alias
RLIMIT_VMEM was already present and used if availble.)
- patch ps, top and systat to notice the new k_vm_vsize member of
kinfo_proc2{}.
- update irix, svr4, svr4_32, linux and osf1 emulations to support
this information. (freebsd could be done, but that it's best left
as part of the full-update of compat/freebsd.)
this addresses PR 7897. it also gives correct memory usage values,
which have never been entirely correct (since mmap), and have been
very incorrect since jemalloc() was enabled.
tested on i386 and sparc64, build tested on several other platforms.
thanks to many folks for feedback and testing but most espcially
chuq and yamt for critical suggestions that lead to this patch not
having a special ugliness i wasn't happy with anyway :-)
2009-03-29 01:02:48 +00:00
roy
9fa1d120a0
el_gets now sets el_len to -1 on error so we can distinguish
...
between a NULL string and an error.
This fixes sh from exiting with libedit now allowing EINTR to return.
We may need to expand this to an errno check in the future.
2009-03-10 21:21:11 +00:00
joerg
fdf2963413
Explicitly escape -- as it is not an argment to the Cm macro.
2009-03-10 15:14:28 +00:00
joerg
048b505ac7
Don't use .Xo/.Xc to workaround ancient macro argument limit.
2009-03-10 14:18:52 +00:00
joerg
997634fe14
Fix preamble to match order set out by mdoc(7). Discussed with wiz.
2009-03-09 19:24:26 +00:00
lukem
46b57afcf7
Default to WARNS=4 (except for rcp & ksh)
2009-02-14 08:31:13 +00:00
christos
8623c59aca
Revert previous commit that fixes PR/36079 (shell misses exit trap), because
...
the fix causes $! to point to the wrong process in pipelines, which is worse.
2009-01-19 19:47:11 +00:00
lukem
c6144e484f
fix -Wsign-compare issues
2009-01-18 00:24:29 +00:00
christos
3957d0cafc
rlim_t will be unsigned as TOG mandates.
2008-12-28 19:53:37 +00:00
christos
97f12feac9
don't free other jobs when we are specifically using the wait built-in.
2008-12-21 17:16:11 +00:00
christos
271febebf6
use EXP_CASE only when trimming and unquoted.
2008-12-21 17:15:09 +00:00
christos
ae1cc09549
PR/36079: M. Levinson: Disable the optimization of not forking for the last
...
command in a subshell, otherwise we miss the exit trap.
2008-12-21 03:15:32 +00:00
christos
9ac082db6c
PR/35055: Wada Keiji: wait did not keep the status of terminated jobs as
...
expected.
2008-12-21 00:19:59 +00:00
christos
26edf84a4b
PR/36954: Roland Illig: don't eat backlash escapes in variable patterns.
...
Makes ${line%%\**} work.
2008-12-20 20:36:44 +00:00
yamt
8277de5576
document "EXIT" pseudo signal.
2008-12-11 04:34:45 +00:00
snj
976326ad53
Some spelling fixes from VaX#n8 in PR bin/23812.
2008-11-15 17:01:38 +00:00
christos
c8877ef31c
and if you don't succeed twice, try again.
2008-11-08 00:14:05 +00:00
christos
440e6c6264
Try a different fix for PR/11317: Don't ignore errors in list().
2008-11-07 15:18:11 +00:00
christos
2afd855bd9
Break PR/11317 again. The counting parentheses fix does not handle case
...
statements properly. Fixes PR/39873.
2008-11-07 15:08:43 +00:00
christos
9fd1d5af01
PR/11317: Hubert Feyrer: Recognize mismatched parentheses inside old style
...
command substitution.
2008-11-05 22:04:43 +00:00
christos
bc4eb9bdd7
show better quoting output for sh -x, from Aleksey Cheusov
2008-10-31 14:38:42 +00:00
apb
89799ead73
Pass SED=${TOOL_SED:Q} in the environment to scripts run during the build.
2008-10-25 22:23:55 +00:00
apb
125b7c8cbb
In shell scripts run during the build, add a SED variable, defaulting
...
to "sed". SED=${TOOL_SED:Q} should be passed in the environment to
override this.
2008-10-25 22:18:15 +00:00
apb
9577284633
Don't try to remove trailing newlines from shell variables via
...
constructs like ${var%$nl}. Apparently this allows the Ubuntu Linux
/bin/sh (dash) to be used as a host shell during the build.
Patch from PR 39786 by Andy Shevchenko.
2008-10-23 20:21:57 +00:00
apb
cd5c0f944d
In shell scripts invoked during a build, and in crunchgen, use ${AWK}
...
instead of plain "awk". The Makefiles that invoke these scripts
or programs will pass AWK=${HOST_AWK:Q}.
2008-10-19 22:10:04 +00:00
apb
96230fab84
Use ${TOOL_AWK} instead of ${AWK} or plain "awk" in make commands.
...
Pass AWK=${TOOL_AWK:Q} to shell scripts that use awk.
2008-10-19 22:05:19 +00:00
dholland
7fb5a8c68e
The field width passed for a %.*s printf format is supposed to be int, not
...
ptrdiff_t; on 64-bit platforms the latter will be too wide.
Adjust accordingly.
2008-10-16 17:58:29 +00:00
dholland
72c2627f1f
Wrap declaration of a STATIC function that's only conditionally defined
...
in a suitable ifdef, so things still compile if STATIC is defined as
"static", which is for some reason not the default.
2008-10-16 15:36:23 +00:00
dholland
744c8edc4b
Wrap declaration of a STATIC function that's only conditionally defined
...
in a suitable ifdef, so things still compile if STATIC is defined as
"static", which is for some reason not the default.
(In the long run STATIC should go away - it might have once been a
portability hack but now definitely serves no purpose.)
2008-10-16 15:31:05 +00:00
dholland
e54c6daca4
Remove unused global variables
2008-10-16 14:55:28 +00:00
dholland
0faa1734e3
Use "extern" properly for referencing globals defined in other modules.
...
Now builds cleanly with -warn-common.
2008-10-16 14:36:40 +00:00
dholland
30a1416240
output.c output.h: expose OUTPUT_ERR (flag for an exposed flags variable)
...
bltin.h: support ferror()
echo.c: use ferror() to fail on output write errors
Another piece of PR bin/39574.
2008-10-12 01:40:37 +00:00
christos
8c54d84110
Fix here documents that end abruptly without NL before EOF.
...
(Andy Shevchenko)
2008-08-23 10:05:52 +00:00
lukem
2fe2731d3f
Remove the \n and tabs from the __COPYRIGHT() strings.
2008-07-20 00:52:39 +00:00
tron
9cae530b67
Revert revisions 1.91 and 1.92. The POSIX spec about the correct behaviour
...
is contradictory at best. And these changes seem to cause more problems
that they are worth.
2008-05-26 14:55:17 +00:00
tron
4d6f948f7a
Fix two more cases of bad handling of "set -e":
...
- false && false
- false || false
2008-05-24 22:24:32 +00:00
tron
c2987416cd
Fix another problem with "set -e": "! true" should terminate the shell.
2008-05-24 19:06:43 +00:00
tron
35fbf8dd7f
Port revision 1.44 of "src/bin/sh/eval.c" from FreeBSD to fix PR bin/38584.
...
Reviewed by Michael van Elst.
2008-05-24 17:12:53 +00:00
martin
3028e483e4
Convert to new 2 clause license
2008-04-29 06:53:00 +00:00
christos
76560beef5
Detect unmatched quotes inside old style command substitution.
...
echo `"`
2008-04-25 17:32:31 +00:00
apb
cd12700971
If SHELL_BUILTIN is defined (as will be the case when building external
...
builtins such as the printf command), then hide a few declarations.
This allows the shell to build again, fixing a problem with
"error" being declared as a function here, and as a variable in
.../usr.bin/printf/printf.c.
2008-03-29 09:58:00 +00:00
apb
d6d9ccc8ad
* define SHELL_BUILTIN, which other headers may use to hide some of their
...
symbols if appropriate. For example, error.h will use it to hide
declarations that should not be seen by external builtins such as printf.
* The shell's outfmt() function returns void, but the standard fprintf()
function returns int. Similarly for several other functions that are
redefined via macros in bltin.h. Add a _RETURN_INT macro to do the
necessary conversion.
* Delete some declarations that appear in error.h.
* Add comments on some #else/#endif lines.
2008-03-29 09:55:40 +00:00
apb
074a931bf5
Remove trailing ';' in definitions of out1c and out2c macros.
2008-03-29 09:49:52 +00:00
dsl
01709217fc
Generate ANSI functions.
...
Just indent the code by a single tab - no need to compare against the
C program generated version any more.
2008-02-27 21:56:14 +00:00
dsl
b63023e666
Change spaces to tabs for consistency with adjacent lines.
2008-02-27 21:55:07 +00:00
matt
4498b1fe25
Fix inconsistent definitions
2008-02-15 17:26:06 +00:00
joerg
f04ccd71b4
Set unique mode for the history, so that repeating a command doesn't
...
spam the history.
2008-02-13 12:57:16 +00:00
msaitoh
899c734b12
Conform to XCU Section 2.8.2 (Exit Status for Commands)
2008-01-21 06:43:03 +00:00
dogcow
90ee124aaf
This should have been all on one line anyway - and hey, it fixes my build
...
issue.
2007-12-18 07:25:00 +00:00
perry
8b0f9554ff
convert __attribute__s to applicable cdefs.h macros
2007-12-15 19:44:37 +00:00
lukem
bcf893f432
use __RCSID()
2007-12-12 22:55:42 +00:00
christos
2554aff24b
PR/36531: Greg A. Woods: another very helpful DEBUG TRACE() call for execve()
...
failures in /bin/sh
2007-06-24 18:36:23 +00:00
christos
546dff6580
PR/36533: Greg A. Woods: minor doc fixes for sh(1)
2007-06-24 17:57:56 +00:00
dsl
8da3353686
Fix sh -c 'true && ! true | false; echo $?'
...
Add some more TRACE((...)) calls to aid such debugging.
Fixes PR bin/36435
Clearly no one tried this test when the changes of rev 1.31 and 1.44 were done!
2007-06-07 20:57:59 +00:00
apb
faafdc7e21
Document that shell arithmetic now uses intmax_t. Document that
...
variables in shell arithmetic don't need "$" signs.
2007-03-25 06:56:43 +00:00
apb
1a20cbd95e
WARNS=4
2007-03-25 06:30:37 +00:00
apb
91ce988bec
Make /bin/sh use intmax_t (instead of int) for arithmetic in $((...)).
2007-03-25 06:29:26 +00:00
rillig
9da5e43f4d
Since interpreting ELF binaries as shell scripts is not very useful, and
...
since the current error message is less than helpful, improve it.
2007-02-15 12:02:59 +00:00
christos
30760cbdc7
PR/35410: Valeriy E. Ushakov: /bin/sh mishandles shell function definitions
...
with function names that are not plain words
1. remove the escape annotations from the function name.
2. check if the function has a valid name before storing it.
2007-01-13 18:58:26 +00:00
christos
a54fe38a0d
fix a volatile variable; from Anon Ymous
2006-12-18 00:37:33 +00:00
wiz
5c056f6785
s/apparant/apparent/, from Zafer.
2006-11-24 22:54:47 +00:00
christos
272937609b
sprinkle volatile.
2006-10-16 00:36:19 +00:00
christos
ab28bede4c
Prefix "Syntax Error" with the program name, if the command name is not
...
available. At least this way we get an idea of what program gives us the
message.
2006-10-04 15:00:38 +00:00
dsl
1719403bf2
Fix typo, update date.
...
Fixes PR/34472
2006-09-04 20:30:36 +00:00
dsl
c58b829dda
Set the 'not a parameter' flag when we skip initial whitespace.
...
Otherwise:
./sh -c 'x=" "; for a in $x; do echo a${a}a; done'
is processed as a single empty parameter (instead of no parameters).
Should fix the breakage I introdiced in rev 1.75 and PR/34256 and PR/34254
2006-08-22 18:11:42 +00:00
dsl
413b7762c2
Rework the code changes from revisions 1.69, 1.70 and 1.74 so that the code
...
behaves correctly.
As far as I can tell, "x$@y" now expands correctly, as does IFS=:; set -$IFS.
Fixes PR/33472 (again) and PR/33956
2006-08-21 21:30:14 +00:00
christos
a8b3562160
PR/33775: YAMAMOTO Takashi: /bin/sh doesn't accept "(" before case patterns
2006-06-20 15:57:44 +00:00
dsl
0e765f005a
When expanding "$@" add a \0 byte after the last argument (as well as all
...
the earlier ones) so that a separator is added before it when it is empty.
This wasn't needed before a recent change that chenged the behaviour of
trailing whitespace IFS characters.
Fixed PR/33472
2006-05-20 13:57:27 +00:00
christos
e80f354dab
Coverity CID 3384: Don't close -1.
2006-05-13 19:47:22 +00:00
mrg
084c052803
quell GCC 4.1 uninitialised variable warnings.
...
XXX: we should audit the tree for which old ones are no longer needed
after getting the older compilers out of the tree..
2006-05-10 21:53:14 +00:00
simonb
15dc85722d
Make the change for bin/31548 to set $PWD on shell startup non-fatal if
...
the current directory doesn't exist.
2006-05-04 11:16:53 +00:00
snj
a640fe8c43
It's "its."
2006-04-24 19:00:29 +00:00
snj
bf5ceaae16
It's "its."
2006-04-24 18:00:53 +00:00
christos
da09d1a838
PR/33281: Martin J. Laubach: Prevent core-dump on "echo abc | { }". bash
...
prints and error and ksh prints nothing. We go the ksh way.
2006-04-18 14:44:05 +00:00
christos
3e359756c9
Coverity CID 620: Remove dead code.
2006-03-18 05:25:56 +00:00
christos
f6828859fa
Coverity CID 890: Possible NULL pointer deref.
2006-03-18 05:23:08 +00:00
christos
169a269417
Coverity CID 1329: Possible NULL deref.
2006-03-18 05:17:36 +00:00
christos
df8cbb182e
Coverity CID 2479: Clarify confusion about uninitialized variable in the
...
presence of setjmp/vfork.
2006-03-17 17:20:47 +00:00
rumble
2174dda221
Handle asprintf failing to allocate.
2006-03-17 14:43:11 +00:00
aymeric
d5d0c11532
Make the -s flag of fc work correctly. Ensure that only one command is specified
...
and ensure that we break out of the loop after executing it.
With the previous code, because the re-executed command was added to the
history, it would think that it still had to execute it, leading to an infinite
loop.
The last thing which differs from ksh is that we get the "fc -s " command into
the history, but this is actually rather a feature in my humble opinion.
To test:
$ echo hello
$ fc -s ec
<infinite loop or correct behaviour>
2006-03-06 00:09:22 +00:00
garbled
6ac601d8c4
Add error printing for ENAMETOOLONG. Partially addresses PR bin/13850 .
...
The actual bug mentioned in that PR no longer exists, but it does cause:
~~~~~: error 63
Which this fix cleans up.
2006-01-02 19:10:33 +00:00
dsl
ea2078818f
TOG require that 'set +o' output the options in a form suitable for
...
restoring them - make it so.
2005-12-13 17:44:18 +00:00
dsl
e60beff86b
Don't change the name of the directory we are going to 'cd' to just because
...
we decide to remove a leading "./" when deciding whether to print the name.
Stops 'cd .//tmp' ending up the same as 'cd /tmp'.
Fixes PR/30735
2005-11-26 21:44:43 +00:00
christos
8d6ffce2ad
PR/31548: Alexander Rigbo: $PWD not set when shell starts up, before pwd
...
or cd get executed.
2005-10-10 21:14:42 +00:00
christos
c05266af8a
fix setmode error handling.
2005-10-01 20:23:54 +00:00
tv
964f98e703
Make slightly more portable without extra conditionals needed:
...
- Use getpgrp() rather than getpgid(0).
(getpgrp() is already used elsewhere in this same file.)
- Use waitpid(-1, a, b) rather than wait3(a, b, NULL).
2005-09-30 18:57:55 +00:00
wiz
2ea3362a10
In mdoc, use .Pp for new paragraphs, not .br.
2005-09-10 22:09:43 +00:00
dsl
8c772bc707
Don't apply CDPATH if the the first component of the target is "." or "..".
...
Fixes PR/30973 and applies the principle of least surprise.
Update documentation to match (including date).
(matches behaviour of pdksh - if not it's documentation)
2005-08-20 21:07:42 +00:00