summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Src/Zle/compresult.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 31cfc5b07..49c58497a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2016-11-21  Daniel Shahaf  <d.s@daniel.shahaf.name>
+
+	* 39981: Src/Zle/compresult.c: Make compstate[to_end] skip
+	suffix and hidden suffix, but not ignored suffix.
+
 2016-11-20  Oliver Kiddle  <opk@zsh.org>
 
 	* 39986, 39989: Src/Zle/zle.h, Src/Zle/zle_keymap.c,
diff --git a/Src/Zle/compresult.c b/Src/Zle/compresult.c
index b7ec18f6d..05799399d 100644
--- a/Src/Zle/compresult.c
+++ b/Src/Zle/compresult.c
@@ -1174,6 +1174,10 @@ do_single(Cmatch m)
 	zlemetacs = minfo.end;
 	if (zlemetacs + m->qisl == lastend)
 	    zlemetacs += minfo.insc;
+
+	/* Advance CURSOR past compadd -s/-S suffixes. */
+	zlemetacs += strlen(psuf);
+	zlemetacs += m->suf ? strlen(m->suf) : 0;
     }
     {
 	Cmatch *om = minfo.cur;