Fix command prompt not to always append argument but only if there has

actually been expansion. GitHub issue 3493.
This commit is contained in:
nicm
2023-03-15 08:15:39 +00:00
parent 907f58cc3c
commit ac4bb89d43
3 changed files with 39 additions and 7 deletions

View File

@ -1615,13 +1615,24 @@ yylex_token(int ch)
for (;;) {
/* EOF or \n are always the end of the token. */
if (ch == EOF || (state == NONE && ch == '\n'))
if (ch == EOF) {
log_debug("%s: end at EOF", __func__);
break;
}
if (state == NONE && ch == '\n') {
log_debug("%s: end at EOL", __func__);
break;
}
/* Whitespace or ; or } ends a token unless inside quotes. */
if ((ch == ' ' || ch == '\t' || ch == ';' || ch == '}') &&
state == NONE)
if (state == NONE && (ch == ' ' || ch == '\t')) {
log_debug("%s: end at WS", __func__);
break;
}
if (state == NONE && (ch == ';' || ch == '}')) {
log_debug("%s: end at %c", __func__, ch);
break;
}
/*
* Spaces and comments inside quotes after \n are removed but