about summary refs log tree commit diff
diff options
context:
space:
mode:
authorTanaka Akira <akr@users.sourceforge.net>2000-03-14 08:19:52 +0000
committerTanaka Akira <akr@users.sourceforge.net>2000-03-14 08:19:52 +0000
commitae54428aedb8f237f090f302750df5b6c51a8fb9 (patch)
treede804fa5f965577384703ba06940a95e1dcc41cc
parentd14884912efc76cfef3b6bbbb679a753901d46f6 (diff)
downloadzsh-ae54428aedb8f237f090f302750df5b6c51a8fb9.tar.gz
zsh-ae54428aedb8f237f090f302750df5b6c51a8fb9.tar.xz
zsh-ae54428aedb8f237f090f302750df5b6c51a8fb9.zip
zsh-workers/10126
-rw-r--r--Src/Zle/compcore.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/Src/Zle/compcore.c b/Src/Zle/compcore.c
index b0ee2b1d0..75e31ac55 100644
--- a/Src/Zle/compcore.c
+++ b/Src/Zle/compcore.c
@@ -1148,11 +1148,11 @@ set_comp_sep(void)
     LinkNode n;
     int owe = we, owb = wb, ocs = cs, swb, swe, scs, soffs, ne = noerrs;
     int tl, got = 0, i = 0, cur = -1, oll = ll, sl, remq;
-    int ois = instring, oib = inbackt, noffs = lip + lp;
+    int ois = instring, oib = inbackt, noffs = lp;
     char *tmp, *p, *ns, *ol = (char *) line, sav, *qp, *qs, *ts, qc = '\0';
 
-    if (compisuffix)
-	s = dyncat(s, compisuffix);
+    s += lip;
+    wb += lip;
     untokenize(s);
 
     swb = swe = soffs = 0;
@@ -1343,16 +1343,16 @@ set_comp_sep(void)
 	    untokenize(ss);
 	    compsuffix = ztrdup(ss);
 	}
-	zsfree(compiprefix);
-	compiprefix = ztrdup("");
-	zsfree(compisuffix);
-	compisuffix = ztrdup("");
-	tmp = tricat(compqiprefix, "", multiquote(qp, 1));
+	tmp = tricat(compqiprefix, compiprefix, multiquote(qp, 1));
 	zsfree(compqiprefix);
 	compqiprefix = tmp;
-	tmp = tricat(multiquote(qs, 1), "", compqisuffix);
+	tmp = tricat(multiquote(qs, 1), compisuffix, compqisuffix);
 	zsfree(compqisuffix);
 	compqisuffix = tmp;
+	zsfree(compiprefix);
+	compiprefix = ztrdup("");
+	zsfree(compisuffix);
+	compisuffix = ztrdup("");
 	freearray(compwords);
 	i = countlinknodes(foo);
 	compwords = (char **) zalloc((i + 1) * sizeof(char *));