summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Src/Zle/computil.c9
2 files changed, 13 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 3e121ba87..e603cd64d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2002-01-08  Sven Wischnowsky  <wischnow@zsh.org>
+
+	* 16417: Src/Zle/computil.c: don't report _arguments-specs more
+	than once (not even shared options with multiple sets)
+
 2002-01-07  Sven Wischnowsky  <wischnow@zsh.org>
 
 	* 16408: Src/Zle/compcore.c: make sure auto menu isn't started
diff --git a/Src/Zle/computil.c b/Src/Zle/computil.c
index 2da2b3634..58115f537 100644
--- a/Src/Zle/computil.c
+++ b/Src/Zle/computil.c
@@ -2315,6 +2315,7 @@ bin_comparguments(char *nam, char **args, char *ops, int func)
 	    LinkList direct = newlinklist();
 	    LinkList odirect = newlinklist();
 	    LinkList equal = newlinklist(), l;
+            LinkNode node;
 	    Caopt p;
 	    char *str;
 	    int ret = 1;
@@ -2349,7 +2350,13 @@ bin_comparguments(char *nam, char **args, char *ops, int func)
 				strcat(str, p->descr);
 			    } else
 				str = bslashcolon(p->name);
-			    addlinknode(l, str);
+
+                            for (node = firstnode(l); node; incnode(node))
+                                if (!strcmp(str, (char *) getdata(node)))
+                                    break;
+
+                            if (!node)
+                                addlinknode(l, str);
 			}
 		    }
 		}