From 8745c07794b021defc01b430d2540a4222f21d24 Mon Sep 17 00:00:00 2001 From: Tanaka Akira Date: Thu, 14 Oct 1999 08:59:18 +0000 Subject: zsh-workers/8247 --- Src/Zle/zle_tricky.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'Src') diff --git a/Src/Zle/zle_tricky.c b/Src/Zle/zle_tricky.c index 66f4de33a..684e8e926 100644 --- a/Src/Zle/zle_tricky.c +++ b/Src/Zle/zle_tricky.c @@ -7801,7 +7801,7 @@ inststrlen(char *str, int move, int len) static Cline cut_cline(Cline l) { - Cline p, e = NULL, maxp = NULL; + Cline q, p, e = NULL, maxp = NULL; int sum = 0, max = 0, tmp, ls = 0; /* If no match was added with matching, we don't really know @@ -7819,10 +7819,17 @@ cut_cline(Cline l) /* First, search the last struct for which we have something on * the line. Anything before that is kept. */ - for (p = l; p; p = p->next) + for (q = NULL, p = l; p; p = p->next) { if (p->orig || p->olen || !(p->flags & CLF_NEW)) e = p->next; - + if (!p->suffix && (p->wlen || p->llen || p->prefix)) + q = p; + } + if (!e && q && !q->orig && !q->olen && (q->flags & CLF_MISS) && + (q->word ? q->wlen : q->llen) < 3) { + q->word = q->line = NULL; + q->wlen = q->llen = 0; + } /* Then keep all structs without missing characters. */ while (e && !(e->flags & CLF_MISS)) -- cgit 1.4.1