diff options
author | Peter Stephenson <p.w.stephenson@ntlworld.com> | 2015-06-20 19:59:11 +0100 |
---|---|---|
committer | Peter Stephenson <p.w.stephenson@ntlworld.com> | 2015-06-20 19:59:11 +0100 |
commit | b7b67d456e40183d952fa0c7793367ebbc6e320c (patch) | |
tree | a8da40c0d444dbcaf571507d8ddb86a1a8c21084 /Src/builtin.c | |
parent | 2dcd766f6292963256d3b1c585e7dc07b14512c1 (diff) | |
download | zsh-b7b67d456e40183d952fa0c7793367ebbc6e320c.tar.gz zsh-b7b67d456e40183d952fa0c7793367ebbc6e320c.tar.xz zsh-b7b67d456e40183d952fa0c7793367ebbc6e320c.zip |
Fix remaining existing tests.
XTRACE output for builtins with assignment arguments added. Note difference as the output is assignment-like too: 'foo=<squggle><squiggle>bar' now appears as foo='<squiggle><squiggle>bar' Remove stupid "int htok" that stopped name part of scalar being expanded. Rewrite KSH_TYPESET test to use old builtin interface where this applies.
Diffstat (limited to 'Src/builtin.c')
-rw-r--r-- | Src/builtin.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/Src/builtin.c b/Src/builtin.c index 6cccf5330..5eb7bfb45 100644 --- a/Src/builtin.c +++ b/Src/builtin.c @@ -443,6 +443,28 @@ execbuiltin(LinkList args, LinkList assigns, Builtin bn) fputc(' ', xtrerr); quotedzputs(*fullargv++, xtrerr); } + if (assigns) { + LinkNode node; + for (node = firstnode(assigns); node; incnode(node)) { + Asgment asg = (Asgment)node; + fputc(' ', xtrerr); + quotedzputs(asg->name, xtrerr); + if (asg->is_array) { + LinkNode arrnode; + fprintf(xtrerr, "=("); + for (arrnode = firstnode(asg->value.array); + arrnode; + incnode(arrnode)) { + fputc(' ', xtrerr); + quotedzputs((char *)getdata(arrnode), xtrerr); + } + fprintf(xtrerr, " )"); + } else if (asg->value.scalar) { + fputc('=', xtrerr); + quotedzputs(asg->value.scalar, xtrerr); + } + } + } fputc('\n', xtrerr); fflush(xtrerr); } |