sh: Remove special case for '=' in set -x; always quote it in outqstr().
I plan to make set -x output always printable using $'...'; avoiding quoting words containing '=' is not worth the extra complexity.
This commit is contained in:
parent
36e4267804
commit
12b8cb671b
@ -774,15 +774,7 @@ xtracecommand(struct arglist *varlist, struct arglist *arglist)
|
||||
for (sp = arglist->list ; sp ; sp = sp->next) {
|
||||
if (sep != 0)
|
||||
out2c(' ');
|
||||
/* 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);
|
||||
out2qstr(sp->text);
|
||||
sep = ' ';
|
||||
}
|
||||
out2c('\n');
|
||||
|
@ -122,8 +122,7 @@ outqstr(const char *p, struct output *file)
|
||||
outstr("''", file);
|
||||
return;
|
||||
}
|
||||
/* Caller will handle '=' if necessary */
|
||||
if (p[strcspn(p, "|&;<>()$`\\\"' \t\n*?[~#")] == '\0' ||
|
||||
if (p[strcspn(p, "|&;<>()$`\\\"' \t\n*?[~#=")] == '\0' ||
|
||||
strcmp(p, "[") == 0) {
|
||||
outstr(p, file);
|
||||
return;
|
||||
|
Loading…
x
Reference in New Issue
Block a user