From b7b67d456e40183d952fa0c7793367ebbc6e320c Mon Sep 17 00:00:00 2001
From: Peter Stephenson
Date: Sat, 20 Jun 2015 19:59:11 +0100
Subject: Fix remaining existing tests.
XTRACE output for builtins with assignment arguments added.
Note difference as the output is assignment-like too:
'foo=bar'
now appears as
foo='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.
---
Src/builtin.c | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
(limited to 'Src/builtin.c')
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);
}
--
cgit 1.4.1