about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Src/Zle/zle_tricky.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/Src/Zle/zle_tricky.c b/Src/Zle/zle_tricky.c
index cf8ce63e1..16b93716c 100644
--- a/Src/Zle/zle_tricky.c
+++ b/Src/Zle/zle_tricky.c
@@ -7272,13 +7272,23 @@ makearray(LinkList l, int s, int *np, int *nlp, int *llp)
 		nl++;
 	}
 	*cp = NULL;
-    } else
+    } else {
+	for (ap = rp; *ap; ap++) {
+	    for (bp = cp = ap + 1; *bp; bp++) {
+		if (!matcheq(*ap, *bp))
+		    *cp++ = *bp;
+		else
+		    n--;
+	    }
+	    *cp = NULL;
+	}
 	for (ap = rp; *ap; ap++) {
 	    if ((*ap)->disp && ((*ap)->flags & CMF_DISPLINE))
 		ll++;
 	    if ((*ap)->flags & CMF_NOLIST)
 		nl++;
 	}
+    }
     if (np)
 	*np = n;
     if (nlp)