summaryrefslogtreecommitdiff
path: root/Src
diff options
context:
space:
mode:
Diffstat (limited to 'Src')
-rw-r--r--Src/hist.c7
-rw-r--r--Src/lex.c2
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 *