freebsd-dev/bin/sh
Jilles Tjoelker 292e667663 sh: Do parameter expansion before printing PS4 (set -x).
The function name expandstr() and the general idea of doing this kind of
expansion by treating the text as a here document without end marker is from
dash.

All variants of parameter expansion and arithmetic expansion also work (the
latter is not required by POSIX but it does not take extra code and many
other shells also allow it).

Command substitution is prevented because I think it causes too much code to
be re-entered (for example creating an unbounded recursion of trace lines).

Unfortunately, our LINENO is somewhat crude, otherwise PS4='$LINENO+ ' would
be quite useful.
2011-06-09 23:12:23 +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: Do parameter expansion before printing PS4 (set -x). 2011-06-09 23:12:23 +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: Do parameter expansion before printing PS4 (set -x). 2011-06-09 23:12:23 +00:00
expand.h sh: Don't do optimized command substitution if expansions have side effects. 2010-12-28 21:27:08 +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: Reduce more needless differences between error messages. 2011-06-04 15:05:52 +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 Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
main.c sh: Reduce more needless differences between error messages. 2011-06-04 15:05:52 +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 Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
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 /*- or .\"- or #- to begin license clauses. 2005-01-10 08:39:26 +00:00
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 Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
sh.1 sh: Do parameter expansion before printing PS4 (set -x). 2011-06-09 23:12:23 +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: Minor optimization to output from ulimit/export/readonly. 2011-05-15 22:09:27 +00:00
var.h sh: Add \u/\U support (in $'...') for UTF-8. 2011-05-08 17:40:10 +00:00