aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--shell/ash.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/shell/ash.c b/shell/ash.c
index c177ac038..a300061a2 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -10829,6 +10829,12 @@ struct synstack {
10829 struct synstack *next; 10829 struct synstack *next;
10830}; 10830};
10831 10831
10832static int
10833pgetc_top(struct synstack *stack)
10834{
10835 return stack->syntax == SQSYNTAX ? pgetc() : pgetc_eatbnl();
10836}
10837
10832static void 10838static void
10833synstack_push(struct synstack **stack, struct synstack *next, int syntax) 10839synstack_push(struct synstack **stack, struct synstack *next, int syntax)
10834{ 10840{
@@ -12194,7 +12200,7 @@ readtoken1(int c, int syntax, char *eofmark, int striptabs)
12194 } 12200 }
12195 USTPUTC(c, out); 12201 USTPUTC(c, out);
12196 nlprompt(); 12202 nlprompt();
12197 c = synstack->syntax == SQSYNTAX ? pgetc() : pgetc_eatbnl(); 12203 c = pgetc_top(synstack);
12198 goto loop; /* continue outer loop */ 12204 goto loop; /* continue outer loop */
12199 case CWORD: 12205 case CWORD:
12200 USTPUTC(c, out); 12206 USTPUTC(c, out);
@@ -12345,7 +12351,7 @@ readtoken1(int c, int syntax, char *eofmark, int striptabs)
12345 IF_ASH_ALIAS(if (c != PEOA)) 12351 IF_ASH_ALIAS(if (c != PEOA))
12346 USTPUTC(c, out); 12352 USTPUTC(c, out);
12347 } 12353 }
12348 c = synstack->syntax == SQSYNTAX ? pgetc() : pgetc_eatbnl(); 12354 c = pgetc_top(synstack);
12349 } /* for (;;) */ 12355 } /* for (;;) */
12350 endword: 12356 endword:
12351 12357