aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--shell/ash.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/shell/ash.c b/shell/ash.c
index da139f89b..3435c5f76 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -12155,10 +12155,12 @@ preadbuffer(void)
12155 char *q; 12155 char *q;
12156 int more; 12156 int more;
12157 12157
12158#if !ENABLE_PLATFORM_MINGW32
12158 if (unlikely(g_parsefile->strpush)) { 12159 if (unlikely(g_parsefile->strpush)) {
12159 popstring(); 12160 popstring();
12160 return __pgetc(); 12161 return __pgetc();
12161 } 12162 }
12163#endif
12162 12164
12163 if (g_parsefile->buf == NULL) { 12165 if (g_parsefile->buf == NULL) {
12164 pgetc_debug("preadbuffer PEOF1"); 12166 pgetc_debug("preadbuffer PEOF1");
@@ -12274,8 +12276,15 @@ static int __pgetc(void)
12274 12276
12275 if (--g_parsefile->left_in_line >= 0) 12277 if (--g_parsefile->left_in_line >= 0)
12276 c = (unsigned char)*g_parsefile->next_to_pgetc++; 12278 c = (unsigned char)*g_parsefile->next_to_pgetc++;
12277 else 12279 else {
12280#if ENABLE_PLATFORM_MINGW32
12281 if (unlikely(g_parsefile->strpush)) {
12282 popstring();
12283 return __pgetc();
12284 }
12285#endif
12278 c = preadbuffer(); 12286 c = preadbuffer();
12287 }
12279 12288
12280 g_parsefile->lastc[1] = g_parsefile->lastc[0]; 12289 g_parsefile->lastc[1] = g_parsefile->lastc[0];
12281 g_parsefile->lastc[0] = c; 12290 g_parsefile->lastc[0] = c;