diff options
-rw-r--r-- | shell/ash.c | 10 |
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 | ||
10832 | static int | ||
10833 | pgetc_top(struct synstack *stack) | ||
10834 | { | ||
10835 | return stack->syntax == SQSYNTAX ? pgetc() : pgetc_eatbnl(); | ||
10836 | } | ||
10837 | |||
10832 | static void | 10838 | static void |
10833 | synstack_push(struct synstack **stack, struct synstack *next, int syntax) | 10839 | synstack_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 | ||