summaryrefslogtreecommitdiffstats
path: root/Src/Zle
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Zle')
-rw-r--r--Src/Zle/compmatch.c3
-rw-r--r--Src/Zle/computil.c2
2 files changed, 3 insertions, 2 deletions
diff --git a/Src/Zle/compmatch.c b/Src/Zle/compmatch.c
index e9c6721ba..fc1e6fb54 100644
--- a/Src/Zle/compmatch.c
+++ b/Src/Zle/compmatch.c
@@ -2076,7 +2076,8 @@ join_clines(Cline o, Cline n)
if ((diff = sub_join(o, n, tn, 0))) {
o->flags = (o->flags & ~CLF_MISS) | of;
- if (po) {
+ if (po && po->prefix &&
+ cmp_anchors(o, po, 0)) {
po->flags |= CLF_MISS;
po->max += diff;
}
diff --git a/Src/Zle/computil.c b/Src/Zle/computil.c
index 063ad4c2f..90714f5fe 100644
--- a/Src/Zle/computil.c
+++ b/Src/Zle/computil.c
@@ -1316,7 +1316,7 @@ ca_parse_line(Cadef d, int multi, int first)
doff = state.singles = arglast = 0;
if (ca_inactive(d, argxor, cur, 0) ||
- ((d->flags & CDF_SEP) && !strcmp(line, "--"))) {
+ ((d->flags & CDF_SEP) && cur != compcurrent && !strcmp(line, "--"))) {
if (ca_inactive(d, NULL, cur, 1))
return 1;
continue;