about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2008-01-18 16:41:36 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2008-01-18 16:41:36 +0000
commitdae7a27fff239e97c5862b2f434284ec4d0d55b5 (patch)
tree6ed5356ff9afb3a01200da9acc76fe98288b7776
parent188da2f53384d241dfb0c2873b554950d91593ec (diff)
downloadzsh-dae7a27fff239e97c5862b2f434284ec4d0d55b5.tar.gz
zsh-dae7a27fff239e97c5862b2f434284ec4d0d55b5.tar.xz
zsh-dae7a27fff239e97c5862b2f434284ec4d0d55b5.zip
24406: use deep copy of Cline structure to avoid recursion problem
-rw-r--r--ChangeLog5
-rw-r--r--Src/Zle/compmatch.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index c6affa01e..fbf1a4aab 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-01-18  Peter Stephenson  <pws@csr.com>
+
+	* 24406: Src/Zle/compmatch.c: use deep copy of Cline structure
+	to avoid it containing itself.
+
 2008-01-17  Peter Stephenson  <pws@csr.com>
 
 	* unposted: Completion/Unix/Command/_perforce: a few minor
diff --git a/Src/Zle/compmatch.c b/Src/Zle/compmatch.c
index 6dff2243e..bf9d2cb0d 100644
--- a/Src/Zle/compmatch.c
+++ b/Src/Zle/compmatch.c
@@ -2003,8 +2003,8 @@ sub_join(Cline a, Cline b, Cline e, int anew)
 	ca = a->prefix;
 
 	while (n) {
-	    e->prefix = cp_cline(n, 0);
-	    a->prefix = cp_cline(ca, 0);
+	    e->prefix = cp_cline(n, 1);
+	    a->prefix = cp_cline(ca, 1);
 
 	    if (anew) {
 		int f = e->flags;