about summary refs log tree commit diff
path: root/Src/Zle/computil.c
diff options
context:
space:
mode:
authorTanaka Akira <akr@users.sourceforge.net>1999-10-21 12:54:28 +0000
committerTanaka Akira <akr@users.sourceforge.net>1999-10-21 12:54:28 +0000
commitbc182b8c2f269a7f1ef2222a481b07f3488ae5f8 (patch)
treec9456c9443316d7c8f6eee90728e9b5354ce028d /Src/Zle/computil.c
parent242c5843d7337cf9ce4bb39bed5d825fc0fe0411 (diff)
downloadzsh-bc182b8c2f269a7f1ef2222a481b07f3488ae5f8.tar.gz
zsh-bc182b8c2f269a7f1ef2222a481b07f3488ae5f8.tar.xz
zsh-bc182b8c2f269a7f1ef2222a481b07f3488ae5f8.zip
zsh-workers/8360
Diffstat (limited to 'Src/Zle/computil.c')
-rw-r--r--Src/Zle/computil.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/Src/Zle/computil.c b/Src/Zle/computil.c
index 9bd52d5c9..2b1409fb3 100644
--- a/Src/Zle/computil.c
+++ b/Src/Zle/computil.c
@@ -696,7 +696,8 @@ parse_cadef(char *nam, char **args)
 		opt->name = ztrdup(name);
 		if (descr)
 		    opt->descr = ztrdup(descr);
-		else if (adpre && oargs && !oargs->next)
+		else if (adpre && oargs && !oargs->next &&
+			 oargs->descr && oargs->descr[0])
 		    opt->descr = tricat(adpre, oargs->descr, adsuf);
 		else
 		    opt->descr = NULL;
@@ -1118,8 +1119,15 @@ ca_parse_line(Cadef d)
 	    ca_laststate.doff = 0;
 	} else if (cur == compcurrent && !ca_laststate.def) {
 	    if ((ca_laststate.def = ddef)) {
-		ca_laststate.doff = doff;
-		ca_laststate.opt = 0;
+		ca_laststate.singles = state.singles;
+		if (state.curopt && state.curopt->type == CAO_NEXT) {
+		    ca_laststate.ddef = ddef;
+		    ca_laststate.def = NULL;
+		    ca_laststate.opt = 1;
+		} else {
+		    ca_laststate.doff = doff;
+		    ca_laststate.opt = 0;
+		}
 	    } else {
 		ca_laststate.def = adef;
 		ca_laststate.ddef = NULL;