diff options
-rw-r--r-- | shell/ash.c | 11 |
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; |