freebsd-nq/bin/sh
Jilles Tjoelker c543e1ae9e sh: Save/restore changed variables in optimized command substitution.
In optimized command substitution, save and restore any variables changed by
expansions (${var=value} and $((var=assigned))), instead of trying to
determine if an expansion may cause such changes.

If $! is referenced in optimized command substitution, do not cause jobs to
be remembered longer.

This fixes $(jobs $!) again, simplifies the man page and shortens the code.
2011-06-12 23:06:04 +00:00
..
bltin sh: Add kill builtin. 2010-12-21 22:47:34 +00:00
funcs sh: Update the suspend example for the change of the job control flag 2010-11-13 22:20:46 +00:00
alias.c sh: Reduce more needless differences between error messages. 2011-06-04 15:05:52 +00:00
alias.h sh: Remove special code for shell scripts without magic number. 2011-02-04 22:47:55 +00:00
arith_yacc.c sh: Remove the "exp" builtin. 2011-05-27 20:53:07 +00:00
arith_yacc.h sh: Import arithmetic expression code from dash. 2011-02-08 23:18:06 +00:00
arith_yylex.c Remove unnecessary cast. 2011-03-07 07:31:15 +00:00
arith.h sh: Import arithmetic expression code from dash. 2011-02-08 23:18:06 +00:00
builtins.def sh: Remove the "exp" builtin. 2011-05-27 20:53:07 +00:00
cd.c sh: Correct criterion for using CDPATH in cd. 2011-05-27 20:01:46 +00:00
cd.h sh: On startup of the shell, use PWD from the environment if it is valid. 2010-04-17 14:35:46 +00:00
error.c sh: Add a function to print warnings (with command name and newline). 2010-12-21 20:47:06 +00:00
error.h sh: Allow EV_EXIT through function calls, make {...} <redir more consistent. 2011-04-23 22:28:56 +00:00
eval.c sh: Save/restore changed variables in optimized command substitution. 2011-06-12 23:06:04 +00:00
eval.h sh: Various warning fixes (from WARNS=6 NO_WERROR=1): 2009-12-27 18:04:05 +00:00
exec.c sh: Remove clearcmdentry()'s now unused argument. 2011-02-05 14:08:51 +00:00
exec.h sh: Remove clearcmdentry()'s now unused argument. 2011-02-05 14:08:51 +00:00
expand.c sh: Save/restore changed variables in optimized command substitution. 2011-06-12 23:06:04 +00:00
expand.h sh: Save/restore changed variables in optimized command substitution. 2011-06-12 23:06:04 +00:00
histedit.c sh: Properly restore exception handler in fc. 2010-12-29 19:39:51 +00:00
init.h sh: Remove special code for shell scripts without magic number. 2011-02-04 22:47:55 +00:00
input.c sh: Reduce more needless differences between error messages. 2011-06-04 15:05:52 +00:00
input.h sh: Constify various strings. 2009-12-24 18:41:14 +00:00
jobs.c sh: Save/restore changed variables in optimized command substitution. 2011-06-12 23:06:04 +00:00
jobs.h sh: Forget about terminated background processes sooner. 2010-06-29 22:37:45 +00:00
mail.c Consistently use "STATIC" for all functions in order to be able to set 2010-10-13 04:01:01 +00:00
mail.h
main.c sh: Read .profile from the home directory (or / if HOME is not set). 2011-06-12 10:13:48 +00:00
main.h sh: Do not run callers' exception handlers in subshells. 2009-12-25 20:21:35 +00:00
Makefile sh: Import arithmetic expression code from dash. 2011-02-08 23:18:06 +00:00
memalloc.c sh: Follow-up to r216743, grabstackblock() can be replaced with stalloc(). 2011-01-09 22:47:58 +00:00
memalloc.h sh: Follow-up to r216743, grabstackblock() can be replaced with stalloc(). 2011-01-09 22:47:58 +00:00
miscbltin.c sh: Minor optimization to output from ulimit/export/readonly. 2011-05-15 22:09:27 +00:00
mkbuiltins sh: Various warning fixes (from WARNS=6 NO_WERROR=1): 2009-12-27 18:04:05 +00:00
mkinit.c Fix some typos under bin/ 2011-05-22 14:03:46 +00:00
mknodes.c sh: Fix crash with empty functions (f() { }) introduced in r196483 2009-08-28 22:41:25 +00:00
mksyntax.c sh: Add $'quoting' (C-style escape sequences). 2011-05-05 20:55:55 +00:00
mktokens sh: Remove obsolete token type TENDBQUOTE. 2011-05-22 15:24:56 +00:00
myhistedit.h sh: Pass TERM changes to libedit. 2010-06-02 19:16:58 +00:00
mystring.c sh: Various warning fixes (from WARNS=6 NO_WERROR=1): 2009-12-27 18:04:05 +00:00
mystring.h
nodes.c.pat In the spirit of r90111, depend on c89 and remove the "STATIC" macro 2010-10-13 22:18:03 +00:00
nodetypes
options.c sh: Improve error message if the script cannot be opened. 2011-06-04 22:19:00 +00:00
options.h sh: Various warning fixes (from WARNS=6 NO_WERROR=1): 2009-12-27 18:04:05 +00:00
output.c sh: Use vsnprintf() rather than crafting our own in fmtstr(). 2010-12-11 17:47:27 +00:00
output.h sh: Code size optimizations to buffered output. 2010-11-20 14:14:52 +00:00
parser.c sh: Do parameter expansion before printing PS4 (set -x). 2011-06-09 23:12:23 +00:00
parser.h sh: Do parameter expansion before printing PS4 (set -x). 2011-06-09 23:12:23 +00:00
redir.c sh: Remove special code for shell scripts without magic number. 2011-02-04 22:47:55 +00:00
redir.h
sh.1 sh: Save/restore changed variables in optimized command substitution. 2011-06-12 23:06:04 +00:00
shell.h sh: Detect dividing the smallest integer by -1. 2011-02-12 23:44:05 +00:00
show.c In the spirit of r90111, depend on c89 and remove the "STATIC" macro 2010-10-13 22:18:03 +00:00
show.h sh: Constify various strings. 2009-12-24 18:41:14 +00:00
TOUR sh: Various updates to the TOUR document. 2011-05-27 16:00:37 +00:00
trap.c sh: Remove special code for shell scripts without magic number. 2011-02-04 22:47:55 +00:00
trap.h sh: Make exit without parameters from EXIT trap POSIX-compliant. 2011-01-08 23:08:13 +00:00
var.c sh: Save/restore changed variables in optimized command substitution. 2011-06-12 23:06:04 +00:00
var.h sh: Save/restore changed variables in optimized command substitution. 2011-06-12 23:06:04 +00:00