summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--shell/ash.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/shell/ash.c b/shell/ash.c
index c8e7e3b06..921367be5 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -11146,10 +11146,9 @@ readtoken1(int c, int syntax, char *eofmark, int striptabs)
if (dqvarnest > 0) {
dqvarnest--;
}
- USTPUTC(CTLENDVAR, out);
- } else {
- USTPUTC(c, out);
+ c = CTLENDVAR;
}
+ USTPUTC(c, out);
break;
#if ENABLE_SH_MATH_SUPPORT
case CLP: /* '(' in arithmetic */
@@ -11158,25 +11157,23 @@ readtoken1(int c, int syntax, char *eofmark, int striptabs)
break;
case CRP: /* ')' in arithmetic */
if (parenlevel > 0) {
- USTPUTC(c, out);
- --parenlevel;
+ parenlevel--;
} else {
if (pgetc() == ')') {
if (--arinest == 0) {
- USTPUTC(CTLENDARI, out);
syntax = prevsyntax;
dblquote = (syntax == DQSYNTAX);
- } else
- USTPUTC(')', out);
+ c = CTLENDARI;
+ }
} else {
/*
* unbalanced parens
* (don't 2nd guess - no error)
*/
pungetc();
- USTPUTC(')', out);
}
}
+ USTPUTC(c, out);
break;
#endif
case CBQUOTE: /* '`' */