aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--shell/ash.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/shell/ash.c b/shell/ash.c
index bee81920a..2eac6e113 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -12751,7 +12751,7 @@ parsesub: {
12751 do { 12751 do {
12752 STPUTC(c, out); 12752 STPUTC(c, out);
12753 c = pgetc_eatbnl(); 12753 c = pgetc_eatbnl();
12754 } while (!subtype && isdigit(c)); 12754 } while ((subtype == 0 || subtype == VSLENGTH) && isdigit(c));
12755 } else if (c != '}') { 12755 } else if (c != '}') {
12756 /* $[{[#]]<specialchar>[}] */ 12756 /* $[{[#]]<specialchar>[}] */
12757 int cc = c; 12757 int cc = c;
@@ -12781,11 +12781,6 @@ parsesub: {
12781 } else 12781 } else
12782 goto badsub; 12782 goto badsub;
12783 12783
12784 if (c != '}' && subtype == VSLENGTH) {
12785 /* ${#VAR didn't end with } */
12786 goto badsub;
12787 }
12788
12789 if (subtype == 0) { 12784 if (subtype == 0) {
12790 static const char types[] ALIGN1 = "}-+?="; 12785 static const char types[] ALIGN1 = "}-+?=";
12791 /* ${VAR...} but not $VAR or ${#VAR} */ 12786 /* ${VAR...} but not $VAR or ${#VAR} */
@@ -12842,6 +12837,8 @@ parsesub: {
12842#endif 12837#endif
12843 } 12838 }
12844 } else { 12839 } else {
12840 if (subtype == VSLENGTH && c != '}')
12841 subtype = 0;
12845 badsub: 12842 badsub:
12846 pungetc(); 12843 pungetc();
12847 } 12844 }