Displaying 4 results from an estimated 4 matches for "arisyntax".
2019 Jan 25
0
[klibc:update-dash] parser: Add syntax stack for recursive parsing
...ced parens
@@ -1011,7 +1043,7 @@ quotemark:
case CIGN:
break;
default:
- if (varnest == 0)
+ if (synstack->varnest == 0)
goto endword; /* exit outer loop */
if (c != PEOA) {
USTPUTC(c, out);
@@ -1021,11 +1053,11 @@ quotemark:
}
}
endword:
- if (syntax == ARISYNTAX)
+ if (synstack->syntax == ARISYNTAX)
synerror("Missing '))'");
- if (syntax != BASESYNTAX && eofmark == NULL)
+ if (synstack->syntax != BASESYNTAX && eofmark == NULL)
synerror("Unterminated quoted string");
- if (varnest != 0) {
+ if (synstac...
2020 Mar 28
0
[klibc:update-dash] dash: parser: Add syntax stack for recursive parsing
...ced parens
@@ -1011,7 +1043,7 @@ quotemark:
case CIGN:
break;
default:
- if (varnest == 0)
+ if (synstack->varnest == 0)
goto endword; /* exit outer loop */
if (c != PEOA) {
USTPUTC(c, out);
@@ -1021,11 +1053,11 @@ quotemark:
}
}
endword:
- if (syntax == ARISYNTAX)
+ if (synstack->syntax == ARISYNTAX)
synerror("Missing '))'");
- if (syntax != BASESYNTAX && eofmark == NULL)
+ if (synstack->syntax != BASESYNTAX && eofmark == NULL)
synerror("Unterminated quoted string");
- if (varnest != 0) {
+ if (synstac...
2019 Jan 25
0
[klibc:update-dash] parser: Fix parameter expansion inside inner double quotes
...nt.org.uk>
---
usr/dash/parser.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/usr/dash/parser.c b/usr/dash/parser.c
index efa8060f..8e407816 100644
--- a/usr/dash/parser.c
+++ b/usr/dash/parser.c
@@ -1325,10 +1325,11 @@ badsub:
pungetc();
}
- if (newsyn == ARISYNTAX && subtype > VSNORMAL)
+ if (newsyn == ARISYNTAX)
newsyn = DQSYNTAX;
- if (newsyn != synstack->syntax) {
+ if ((newsyn != synstack->syntax || synstack->innerdq) &&
+ subtype != VSNORMAL) {
synstack_push(&synstack,
synstack->prev ?:...
2020 Mar 28
0
[klibc:update-dash] dash: parser: Fix parameter expansion inside inner double quotes
...nt.org.uk>
---
usr/dash/parser.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/usr/dash/parser.c b/usr/dash/parser.c
index efa8060f..8e407816 100644
--- a/usr/dash/parser.c
+++ b/usr/dash/parser.c
@@ -1325,10 +1325,11 @@ badsub:
pungetc();
}
- if (newsyn == ARISYNTAX && subtype > VSNORMAL)
+ if (newsyn == ARISYNTAX)
newsyn = DQSYNTAX;
- if (newsyn != synstack->syntax) {
+ if ((newsyn != synstack->syntax || synstack->innerdq) &&
+ subtype != VSNORMAL) {
synstack_push(&synstack,
synstack->prev ?:...