Displaying 7 results from an estimated 7 matches for "nlflag".
Did you mean:
lflag
2019 Jan 25
0
[klibc:update-dash] [PARSER] Simplify EOF/newline handling in list parser
...int t;
-
tokpushback = 0;
+ checkkwd = 0;
+ heredoclist = 0;
doprompt = interact;
if (doprompt)
setprompt(doprompt);
needprompt = 0;
- t = readtoken();
- if (t == TEOF)
- return NEOF;
- if (t == TNL)
- return NULL;
- tokpushback++;
return list(1);
}
@@ -158,11 +152,27 @@ list(int nlflag)
union node *n1, *n2, *n3;
int tok;
- checkkwd = CHKNL | CHKKWD | CHKALIAS;
- if (nlflag == 2 && tokendlist[peektoken()])
- return NULL;
n1 = NULL;
for (;;) {
+ switch (peektoken()) {
+ case TNL:
+ if (!(nlflag & 1))
+ break;
+ parseheredoc();
+ return n1;
+
+ cas...
2020 Mar 28
0
[klibc:update-dash] dash: [PARSER] Simplify EOF/newline handling in list parser
...int t;
-
tokpushback = 0;
+ checkkwd = 0;
+ heredoclist = 0;
doprompt = interact;
if (doprompt)
setprompt(doprompt);
needprompt = 0;
- t = readtoken();
- if (t == TEOF)
- return NEOF;
- if (t == TNL)
- return NULL;
- tokpushback++;
return list(1);
}
@@ -158,11 +152,27 @@ list(int nlflag)
union node *n1, *n2, *n3;
int tok;
- checkkwd = CHKNL | CHKKWD | CHKALIAS;
- if (nlflag == 2 && tokendlist[peektoken()])
- return NULL;
n1 = NULL;
for (;;) {
+ switch (peektoken()) {
+ case TNL:
+ if (!(nlflag & 1))
+ break;
+ parseheredoc();
+ return n1;
+
+ cas...
2020 Mar 28
0
[klibc:update-dash] dash: parser: Do not push token back before parseheredoc
...ned-off-by: Ben Hutchings <ben at decadent.org.uk>
---
usr/dash/parser.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/usr/dash/parser.c b/usr/dash/parser.c
index c4e63781..1f9e8ec0 100644
--- a/usr/dash/parser.c
+++ b/usr/dash/parser.c
@@ -166,7 +166,7 @@ list(int nlflag)
n1 = NULL;
for (;;) {
- switch (peektoken()) {
+ switch (readtoken()) {
case TNL:
if (!(nlflag & 1))
break;
@@ -177,9 +177,12 @@ list(int nlflag)
if (!n1 && (nlflag & 1))
n1 = NEOF;
parseheredoc();
+ tokpushback++;
+ lasttoken = TEOF;
return...
2019 Jan 25
0
[klibc:update-dash] [SHELL] Optimize dash -c "command" to avoid a fork
...art of line */
int lasttoken; /* last token read */
-MKINIT int tokpushback; /* last token pushed back */
+int tokpushback; /* last token pushed back */
char *wordtext; /* text of last word returned by readtoken */
int checkkwd;
struct nodelist *backquotelist;
@@ -210,6 +210,7 @@ list(int nlflag)
parseheredoc();
else
pungetc(); /* push back EOF on input */
+ tokpushback++;
return n1;
default:
if (nlflag == 1)
diff --git a/usr/dash/parser.h b/usr/dash/parser.h
index e6caed63..2875cce6 100644
--- a/usr/dash/parser.h
+++ b/usr/dash/parser.h
@@ -34,6 +34,8 @@
* @(...
2020 Mar 28
0
[klibc:update-dash] dash: [SHELL] Optimize dash -c "command" to avoid a fork
...art of line */
int lasttoken; /* last token read */
-MKINIT int tokpushback; /* last token pushed back */
+int tokpushback; /* last token pushed back */
char *wordtext; /* text of last word returned by readtoken */
int checkkwd;
struct nodelist *backquotelist;
@@ -210,6 +210,7 @@ list(int nlflag)
parseheredoc();
else
pungetc(); /* push back EOF on input */
+ tokpushback++;
return n1;
default:
if (nlflag == 1)
diff --git a/usr/dash/parser.h b/usr/dash/parser.h
index e6caed63..2875cce6 100644
--- a/usr/dash/parser.h
+++ b/usr/dash/parser.h
@@ -34,6 +34,8 @@
* @(...
2019 Jan 25
0
[klibc:update-dash] [PARSER] Removed unnecessary pungetc on EOF from parser
...pana.org.au>
Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
---
usr/dash/parser.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/usr/dash/parser.c b/usr/dash/parser.c
index f6c43be0..f0c919d5 100644
--- a/usr/dash/parser.c
+++ b/usr/dash/parser.c
@@ -208,8 +208,6 @@ list(int nlflag)
case TEOF:
if (heredoclist)
parseheredoc();
- else
- pungetc(); /* push back EOF on input */
tokpushback++;
return n1;
default:
2020 Mar 28
0
[klibc:update-dash] dash: [PARSER] Removed unnecessary pungetc on EOF from parser
...pana.org.au>
Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
---
usr/dash/parser.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/usr/dash/parser.c b/usr/dash/parser.c
index f6c43be0..f0c919d5 100644
--- a/usr/dash/parser.c
+++ b/usr/dash/parser.c
@@ -208,8 +208,6 @@ list(int nlflag)
case TEOF:
if (heredoclist)
parseheredoc();
- else
- pungetc(); /* push back EOF on input */
tokpushback++;
return n1;
default: