diff options
Diffstat (limited to 'shell')
-rw-r--r-- | shell/ash.c | 38 |
1 files changed, 4 insertions, 34 deletions
diff --git a/shell/ash.c b/shell/ash.c index 43b55b259..152ca198d 100644 --- a/shell/ash.c +++ b/shell/ash.c | |||
@@ -772,11 +772,7 @@ struct strpush { | |||
772 | struct strpush *spfree; | 772 | struct strpush *spfree; |
773 | 773 | ||
774 | /* Remember last two characters for pungetc. */ | 774 | /* Remember last two characters for pungetc. */ |
775 | #if ENABLE_ASH_IGNORE_CR | ||
776 | int lastc[3]; /* Ignoring CRs needs more pungetc. */ | ||
777 | #else | ||
778 | int lastc[2]; | 775 | int lastc[2]; |
779 | #endif | ||
780 | 776 | ||
781 | /* Number of outstanding calls to pungetc. */ | 777 | /* Number of outstanding calls to pungetc. */ |
782 | int unget; | 778 | int unget; |
@@ -801,11 +797,7 @@ struct parsefile { | |||
801 | struct strpush *spfree; | 797 | struct strpush *spfree; |
802 | 798 | ||
803 | /* Remember last two characters for pungetc. */ | 799 | /* Remember last two characters for pungetc. */ |
804 | #if ENABLE_ASH_IGNORE_CR | ||
805 | int lastc[3]; /* Ignoring CRs needs more pungetc. */ | ||
806 | #else | ||
807 | int lastc[2]; | 800 | int lastc[2]; |
808 | #endif | ||
809 | 801 | ||
810 | /* Number of outstanding calls to pungetc. */ | 802 | /* Number of outstanding calls to pungetc. */ |
811 | int unget; | 803 | int unget; |
@@ -3611,11 +3603,7 @@ static const uint8_t syntax_index_table[] ALIGN1 = { | |||
3611 | /* 10 "\n" */ CNL_CNL_CNL_CNL, | 3603 | /* 10 "\n" */ CNL_CNL_CNL_CNL, |
3612 | /* 11 */ CWORD_CWORD_CWORD_CWORD, | 3604 | /* 11 */ CWORD_CWORD_CWORD_CWORD, |
3613 | /* 12 */ CWORD_CWORD_CWORD_CWORD, | 3605 | /* 12 */ CWORD_CWORD_CWORD_CWORD, |
3614 | #if ENABLE_ASH_IGNORE_CR | ||
3615 | /* 13 */ CSPCL_CWORD_CWORD_CWORD, | ||
3616 | #else | ||
3617 | /* 13 */ CWORD_CWORD_CWORD_CWORD, | 3606 | /* 13 */ CWORD_CWORD_CWORD_CWORD, |
3618 | #endif | ||
3619 | /* 14 */ CWORD_CWORD_CWORD_CWORD, | 3607 | /* 14 */ CWORD_CWORD_CWORD_CWORD, |
3620 | /* 15 */ CWORD_CWORD_CWORD_CWORD, | 3608 | /* 15 */ CWORD_CWORD_CWORD_CWORD, |
3621 | /* 16 */ CWORD_CWORD_CWORD_CWORD, | 3609 | /* 16 */ CWORD_CWORD_CWORD_CWORD, |
@@ -11895,9 +11883,7 @@ preadbuffer(void) | |||
11895 | more--; | 11883 | more--; |
11896 | 11884 | ||
11897 | c = *q; | 11885 | c = *q; |
11898 | /* Remove CR from input buffer as an alternative to ASH_IGNORE_CR. */ | 11886 | if (c == '\0' || (ENABLE_PLATFORM_MINGW32 && c == '\r')) { |
11899 | if (c == '\0' || (c == '\r' && | ||
11900 | ENABLE_PLATFORM_MINGW32 && !ENABLE_ASH_IGNORE_CR)) { | ||
11901 | memmove(q, q + 1, more); | 11887 | memmove(q, q + 1, more); |
11902 | } else { | 11888 | } else { |
11903 | q++; | 11889 | q++; |
@@ -11985,9 +11971,6 @@ static int __pgetc(void) | |||
11985 | else | 11971 | else |
11986 | c = preadbuffer(); | 11972 | c = preadbuffer(); |
11987 | 11973 | ||
11988 | #if ENABLE_ASH_IGNORE_CR | ||
11989 | g_parsefile->lastc[2] = g_parsefile->lastc[1]; | ||
11990 | #endif | ||
11991 | g_parsefile->lastc[1] = g_parsefile->lastc[0]; | 11974 | g_parsefile->lastc[1] = g_parsefile->lastc[0]; |
11992 | g_parsefile->lastc[0] = c; | 11975 | g_parsefile->lastc[0] = c; |
11993 | 11976 | ||
@@ -12025,24 +12008,11 @@ pgetc_eatbnl(void) | |||
12025 | int c; | 12008 | int c; |
12026 | 12009 | ||
12027 | while ((c = pgetc()) == '\\') { | 12010 | while ((c = pgetc()) == '\\') { |
12028 | #if !ENABLE_ASH_IGNORE_CR | ||
12029 | if (pgetc() != '\n') { | 12011 | if (pgetc() != '\n') { |
12030 | pungetc(); | 12012 | pungetc(); |
12031 | break; | 12013 | break; |
12032 | } | 12014 | } |
12033 | #else | 12015 | |
12034 | int c2 = pgetc(); | ||
12035 | if (c2 == '\r') { | ||
12036 | if (pgetc() == '\n') | ||
12037 | goto eatbnl; | ||
12038 | pungetc(); | ||
12039 | } | ||
12040 | if (c2 != '\n') { | ||
12041 | pungetc(); | ||
12042 | break; | ||
12043 | } | ||
12044 | eatbnl: | ||
12045 | #endif | ||
12046 | nlprompt(); | 12016 | nlprompt(); |
12047 | } | 12017 | } |
12048 | 12018 | ||
@@ -13705,7 +13675,7 @@ checkend: { | |||
13705 | c = pgetc(); | 13675 | c = pgetc(); |
13706 | } | 13676 | } |
13707 | 13677 | ||
13708 | if (c == '\n' || c == PEOF || (ENABLE_ASH_IGNORE_CR && c == '\r')) { | 13678 | if (c == '\n' || c == PEOF) { |
13709 | c = PEOF; | 13679 | c = PEOF; |
13710 | if (trap_depth == 0) | 13680 | if (trap_depth == 0) |
13711 | g_parsefile->linno++; | 13681 | g_parsefile->linno++; |
@@ -14181,7 +14151,7 @@ xxreadtoken(void) | |||
14181 | setprompt_if(needprompt, 2); | 14151 | setprompt_if(needprompt, 2); |
14182 | for (;;) { /* until token or start of word found */ | 14152 | for (;;) { /* until token or start of word found */ |
14183 | c = pgetc_eatbnl(); | 14153 | c = pgetc_eatbnl(); |
14184 | if (c == ' ' || c == '\t' || (ENABLE_ASH_IGNORE_CR && c == '\r')) | 14154 | if (c == ' ' || c == '\t') |
14185 | continue; | 14155 | continue; |
14186 | 14156 | ||
14187 | if (c == '#') { | 14157 | if (c == '#') { |