mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-01-19 11:31:26 +01:00
Dan Nelson: 17492: Quote output from xtrace
This commit is contained in:
parent
ef74d743a0
commit
8e90d2018c
3 changed files with 26 additions and 13 deletions
|
@ -369,10 +369,14 @@ execbuiltin(LinkList args, Builtin bn)
|
|||
if (xtr) {
|
||||
printprompt4();
|
||||
fprintf(xtrerr, "%s", name);
|
||||
if (xarg)
|
||||
fprintf(xtrerr, " %s", xarg);
|
||||
while (*oargv)
|
||||
fprintf(xtrerr, " %s", *oargv++);
|
||||
if (xarg) {
|
||||
fputc(' ', xtrerr);
|
||||
quotedzputs(xarg, xtrerr);
|
||||
}
|
||||
while (*oargv) {
|
||||
fputc(' ', xtrerr);
|
||||
quotedzputs(*oargv++, xtrerr);
|
||||
}
|
||||
fputc('\n', xtrerr);
|
||||
fflush(xtrerr);
|
||||
}
|
||||
|
|
11
Src/cond.c
11
Src/cond.c
|
@ -147,9 +147,14 @@ evalcond(Estate state)
|
|||
singsub(&rt);
|
||||
untokenize(rt);
|
||||
}
|
||||
fprintf(xtrerr, " %s %s %s", left, condstr[ctype], rt);
|
||||
} else
|
||||
fprintf(xtrerr, " -%c %s", ctype, left);
|
||||
fputc(' ',xtrerr);
|
||||
quotedzputs(left, xtrerr);
|
||||
fprintf(xtrerr, " %s ", condstr[ctype]);
|
||||
quotedzputs(rt, xtrerr);
|
||||
} else {
|
||||
fprintf(xtrerr, " -%c ", ctype);
|
||||
quotedzputs(left, xtrerr);
|
||||
}
|
||||
}
|
||||
|
||||
if (ctype >= COND_EQ && ctype <= COND_GE) {
|
||||
|
|
16
Src/exec.c
16
Src/exec.c
|
@ -1278,7 +1278,7 @@ makecline(LinkList list)
|
|||
|
||||
for (node = firstnode(list); node; incnode(node)) {
|
||||
*ptr++ = (char *)getdata(node);
|
||||
zputs(getdata(node), xtrerr);
|
||||
quotedzputs(getdata(node), xtrerr);
|
||||
if (nextnode(node))
|
||||
fputc(' ', xtrerr);
|
||||
}
|
||||
|
@ -1548,8 +1548,10 @@ addvars(Estate state, Wordcode pc, int export)
|
|||
untokenize(peekfirst(vl));
|
||||
val = ztrdup(ugetnode(vl));
|
||||
}
|
||||
if (xtr)
|
||||
fprintf(xtrerr, "%s ", val);
|
||||
if (xtr) {
|
||||
quotedzputs(val, xtrerr);
|
||||
fputc(' ', xtrerr);
|
||||
}
|
||||
if (export && !strchr(name, '[')) {
|
||||
if (export < 0 && isset(RESTRICTED) &&
|
||||
(pm = (Param) paramtab->removenode(paramtab, name)) &&
|
||||
|
@ -1589,8 +1591,10 @@ addvars(Estate state, Wordcode pc, int export)
|
|||
*ptr = NULL;
|
||||
if (xtr) {
|
||||
fprintf(xtrerr, "( ");
|
||||
for (ptr = arr; *ptr; ptr++)
|
||||
fprintf(xtrerr, "%s ", *ptr);
|
||||
for (ptr = arr; *ptr; ptr++) {
|
||||
quotedzputs(*ptr, xtrerr);
|
||||
fputc(' ', xtrerr);
|
||||
}
|
||||
fprintf(xtrerr, ") ");
|
||||
}
|
||||
assignaparam(name, arr, WC_ASSIGN_TYPE2(ac) == WC_ASSIGN_INC);
|
||||
|
@ -3207,7 +3211,7 @@ execshfunc(Shfunc shf, LinkList args)
|
|||
for (lptr = firstnode(args); lptr; incnode(lptr)) {
|
||||
if (lptr != firstnode(args))
|
||||
fputc(' ', xtrerr);
|
||||
fprintf(xtrerr, "%s", (char *)getdata(lptr));
|
||||
quotedzputs((char *)getdata(lptr), xtrerr);
|
||||
}
|
||||
fputc('\n', xtrerr);
|
||||
fflush(xtrerr);
|
||||
|
|
Loading…
Reference in a new issue