diff options
Diffstat (limited to 'Src')
-rw-r--r-- | Src/hist.c | 7 | ||||
-rw-r--r-- | Src/lex.c | 2 |
2 files changed, 5 insertions, 4 deletions
diff --git a/Src/hist.c b/Src/hist.c index beecfbe4a..35ab2b1fd 100644 --- a/Src/hist.c +++ b/Src/hist.c @@ -2058,15 +2058,15 @@ mod_export LinkList bufferwords(LinkList list, char *buf, int *index) { int num = 0, cur = -1, got = 0, ne = noerrs, ocs = cs; - int owb = wb, owe = we, oadx = addedx, ozp = zleparse; + int owb = wb, owe = we, oadx = addedx, ozp = zleparse, oexp = expanding; char *p; if (!list) list = newlinklist(); - zleparse = 1; + zleparse = 3; addedx = 0; - noerrs = 1; + noerrs = expanding = 1; lexsave(); if (buf) { int l = strlen(buf); @@ -2133,6 +2133,7 @@ bufferwords(LinkList list, char *buf, int *index) inpop(); errflag = 0; zleparse = ozp; + expanding = oexp; noerrs = ne; lexrestore(); cs = ocs; diff --git a/Src/lex.c b/Src/lex.c index 644f8cf2b..5aa63ece5 100644 --- a/Src/lex.c +++ b/Src/lex.c @@ -673,7 +673,7 @@ gettok(void) /* chars in initial position in word */ if (c == hashchar && - (isset(INTERACTIVECOMMENTS) || + ((zleparse != 3 && isset(INTERACTIVECOMMENTS)) || (!zleparse && !expanding && (!interact || unset(SHINSTDIN) || strin)))) { /* History is handled here to prevent extra * |