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 a33ab0626..1ca45f9c1 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -12635,7 +12635,7 @@ parsesub: {
12635 do { 12635 do {
12636 STPUTC(c, out); 12636 STPUTC(c, out);
12637 c = pgetc_eatbnl(); 12637 c = pgetc_eatbnl();
12638 } while (!subtype && isdigit(c)); 12638 } while ((subtype == 0 || subtype == VSLENGTH) && isdigit(c));
12639 } else if (c != '}') { 12639 } else if (c != '}') {
12640 /* $[{[#]]<specialchar>[}] */ 12640 /* $[{[#]]<specialchar>[}] */
12641 int cc = c; 12641 int cc = c;
@@ -12665,11 +12665,6 @@ parsesub: {
12665 } else 12665 } else
12666 goto badsub; 12666 goto badsub;
12667 12667
12668 if (c != '}' && subtype == VSLENGTH) {
12669 /* ${#VAR didn't end with } */
12670 goto badsub;
12671 }
12672
12673 if (subtype == 0) { 12668 if (subtype == 0) {
12674 static const char types[] ALIGN1 = "}-+?="; 12669 static const char types[] ALIGN1 = "}-+?=";
12675 /* ${VAR...} but not $VAR or ${#VAR} */ 12670 /* ${VAR...} but not $VAR or ${#VAR} */
@@ -12726,6 +12721,8 @@ parsesub: {
12726#endif 12721#endif
12727 } 12722 }
12728 } else { 12723 } else {
12724 if (subtype == VSLENGTH && c != '}')
12725 subtype = 0;
12729 badsub: 12726 badsub:
12730 pungetc(); 12727 pungetc();
12731 } 12728 }