summaryrefslogtreecommitdiff
path: root/Src/Zle/compmatch.c
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Zle/compmatch.c')
-rw-r--r--Src/Zle/compmatch.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/Src/Zle/compmatch.c b/Src/Zle/compmatch.c
index 884946b97..33b5b8a40 100644
--- a/Src/Zle/compmatch.c
+++ b/Src/Zle/compmatch.c
@@ -378,9 +378,14 @@ add_match_part(Cmatcher m, char *l, char *w, int wl,
matchsubs = matchlastsub = NULL;
}
/* Store the arguments in the last part-cline. */
- lp->line = l; lp->llen = wl;
- lp->word = w; lp->wlen = wl;
- lp->orig = o; lp->olen = ol;
+ if (lp->llen || lp->wlen) {
+ lp->next = get_cline(l, wl, w, wl, o, ol, CLF_NEW);
+ lp = lp->next;
+ } else {
+ lp->line = l; lp->llen = wl;
+ lp->word = w; lp->wlen = wl;
+ lp->orig = o; lp->olen = ol;
+ }
if (o || ol)
lp->flags &= ~CLF_NEW;