about summary refs log tree commit diff
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  *