about summary refs log tree commit diff
path: root/Src/Zle/computil.c
diff options
context:
space:
mode:
authorTanaka Akira <akr@users.sourceforge.net>2000-02-04 14:30:15 +0000
committerTanaka Akira <akr@users.sourceforge.net>2000-02-04 14:30:15 +0000
commit2573b87620567ebeddcacf4ec0a7e7b41af755a3 (patch)
treef0851c1fe3ef71e5e9515d3d45d37e0020e65126 /Src/Zle/computil.c
parent3c3ffa433dca8c6c396d1cca734bc349a91b9797 (diff)
downloadzsh-2573b87620567ebeddcacf4ec0a7e7b41af755a3.tar.gz
zsh-2573b87620567ebeddcacf4ec0a7e7b41af755a3.tar.xz
zsh-2573b87620567ebeddcacf4ec0a7e7b41af755a3.zip
zsh-workers/9568
Diffstat (limited to 'Src/Zle/computil.c')
-rw-r--r--Src/Zle/computil.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/Src/Zle/computil.c b/Src/Zle/computil.c
index 7aeb30edb..4b0f11d7c 100644
--- a/Src/Zle/computil.c
+++ b/Src/Zle/computil.c
@@ -1039,7 +1039,7 @@ ca_parse_line(Cadef d)
 
 	zfree(ca_laststate.oargs, ca_laststate.d->nopts * sizeof(LinkList));
     }
-    /* MArk everything as active. */
+    /* Mark everything as active. */
 
     for (ptr = d->opts; ptr; ptr = ptr->next)
 	ptr->active = 1;
@@ -1406,8 +1406,10 @@ bin_comparguments(char *nam, char **args, char *ops, int func)
 	    return 1;
 	}
     case 'O':
-	if (ca_laststate.opt || (ca_laststate.doff && ca_laststate.def) ||
-	    (ca_laststate.def && ca_laststate.def->type == CAA_OPT)) {
+	if ((ca_laststate.opt || (ca_laststate.doff && ca_laststate.def) ||
+	     (ca_laststate.def && ca_laststate.def->type == CAA_OPT)) &&
+	    (!ca_laststate.def || ca_laststate.def->type < CAA_RARGS ||
+	     compcurrent == 1)) {
 	    LinkList next = newlinklist();
 	    LinkList direct = newlinklist();
 	    LinkList odirect = newlinklist();