about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSven Wischnowsky <wischnow@users.sourceforge.net>2001-04-02 09:05:47 +0000
committerSven Wischnowsky <wischnow@users.sourceforge.net>2001-04-02 09:05:47 +0000
commitc05a2d20937b2fee0b54adcbdc76d134a8d3f7a9 (patch)
treea0009a0d31505b1bac7f99d66b60b6f3f1325e18
parent9475938761151c0187f40ee36e3e385c6613e1a4 (diff)
downloadzsh-c05a2d20937b2fee0b54adcbdc76d134a8d3f7a9.tar.gz
zsh-c05a2d20937b2fee0b54adcbdc76d134a8d3f7a9.tar.xz
zsh-c05a2d20937b2fee0b54adcbdc76d134a8d3f7a9.zip
make `_arguments -S' still complete long options after `--<TAB>'; fix for cursor positioning with partial word match specs (13868) pre-func-move
-rw-r--r--ChangeLog6
-rw-r--r--Src/Zle/compmatch.c3
-rw-r--r--Src/Zle/computil.c2
3 files changed, 9 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 8751aec83..7ed226bc8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2001-04-02  Sven Wischnowsky  <wischnow@zsh.org>
+
+	* 13868: Src/Zle/compmatch.c, Src/Zle/computil.c: make
+	`_arguments -S' still complete long options after `--<TAB>';
+	fix for cursor positioning with partial word match specs
+
 2001-04-02  Clint Adams  <schizo@debian.org>
 
  	* 13866: Completion/Debian/_apt: complete a release
diff --git a/Src/Zle/compmatch.c b/Src/Zle/compmatch.c
index e9c6721ba..fc1e6fb54 100644
--- a/Src/Zle/compmatch.c
+++ b/Src/Zle/compmatch.c
@@ -2076,7 +2076,8 @@ join_clines(Cline o, Cline n)
 
 				if ((diff = sub_join(o, n, tn, 0))) {
 				    o->flags = (o->flags & ~CLF_MISS) | of;
-				    if (po) {
+				    if (po && po->prefix &&
+                                        cmp_anchors(o, po, 0)) {
 					po->flags |= CLF_MISS;
 					po->max += diff;
 				    }
diff --git a/Src/Zle/computil.c b/Src/Zle/computil.c
index 063ad4c2f..90714f5fe 100644
--- a/Src/Zle/computil.c
+++ b/Src/Zle/computil.c
@@ -1316,7 +1316,7 @@ ca_parse_line(Cadef d, int multi, int first)
 	doff = state.singles = arglast = 0;
 
 	if (ca_inactive(d, argxor, cur, 0) ||
-	    ((d->flags & CDF_SEP) && !strcmp(line, "--"))) {
+	    ((d->flags & CDF_SEP) && cur != compcurrent && !strcmp(line, "--"))) {
 	    if (ca_inactive(d, NULL, cur, 1))
 		return 1;
 	    continue;