svn commit: r194786 - head/bin/sh
Jilles Tjoelker
jilles at FreeBSD.org
Tue Jun 23 22:53:35 UTC 2009
Author: jilles
Date: Tue Jun 23 22:53:34 2009
New Revision: 194786
URL: http://svn.freebsd.org/changeset/base/194786
Log:
Quote -x tracing output so it is unambiguous.
It is usually but not always suitable for re-input to the shell.
Approved by: ed (mentor) (implicit)
Modified:
head/bin/sh/eval.c
Modified: head/bin/sh/eval.c
==============================================================================
--- head/bin/sh/eval.c Tue Jun 23 22:47:34 2009 (r194785)
+++ head/bin/sh/eval.c Tue Jun 23 22:53:34 2009 (r194786)
@@ -642,17 +642,32 @@ evalcommand(union node *cmd, int flags,
/* Print the command if xflag is set. */
if (xflag) {
char sep = 0;
+ const char *p;
out2str(ps4val());
for (sp = varlist.list ; sp ; sp = sp->next) {
if (sep != 0)
outc(' ', &errout);
- out2str(sp->text);
+ p = sp->text;
+ while (*p != '=' && *p != '\0')
+ out2c(*p++);
+ if (*p != '\0') {
+ out2c(*p++);
+ out2qstr(p);
+ }
sep = ' ';
}
for (sp = arglist.list ; sp ; sp = sp->next) {
if (sep != 0)
outc(' ', &errout);
- out2str(sp->text);
+ /* Disambiguate command looking like assignment. */
+ if (sp == arglist.list &&
+ strchr(sp->text, '=') != NULL &&
+ strchr(sp->text, '\'') == NULL) {
+ out2c('\'');
+ out2str(sp->text);
+ out2c('\'');
+ } else
+ out2qstr(sp->text);
sep = ' ';
}
outc('\n', &errout);
More information about the svn-src-head
mailing list