about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2008-04-21 10:13:30 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2008-04-21 10:13:30 +0000
commit500c402380849d40d6e0eabd6cc063add47a57af (patch)
tree3729321cf993dcae7e7ac05b42239e632d53b865
parent475fc987820db6fba2d76a2726f8c64955051da3 (diff)
downloadzsh-500c402380849d40d6e0eabd6cc063add47a57af.tar.gz
zsh-500c402380849d40d6e0eabd6cc063add47a57af.tar.xz
zsh-500c402380849d40d6e0eabd6cc063add47a57af.zip
24855: tests for combining char alignment should only be on metafied line
-rw-r--r--ChangeLog3
-rw-r--r--Src/Zle/zle_utils.c11
2 files changed, 11 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 56389c328..a53b11dd1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2008-04-21  Peter Stephenson  <pws@csr.com>
 
+	* 24855: Src/Zle/zle_utils.c: tests for combining char aligments
+	should only be on metafied command line.
+
 	* unposted: Src/Zle/zle_move.c: missing assignment in new
 	backwardmetafiedchar().
 
diff --git a/Src/Zle/zle_utils.c b/Src/Zle/zle_utils.c
index 0f14d57a4..8b298f59d 100644
--- a/Src/Zle/zle_utils.c
+++ b/Src/Zle/zle_utils.c
@@ -591,6 +591,7 @@ backkill(int ct, int flags)
 {
     int i;
 
+    UNMETACHECK();
     if (flags & CUT_RAW) {
 	i = (zlecs -= ct);
     } else {
@@ -611,6 +612,7 @@ forekill(int ct, int flags)
 {
     int i = zlecs;
 
+    UNMETACHECK();
     if (!(flags & CUT_RAW)) {
 	int n = ct;
 	while (n--)
@@ -633,6 +635,7 @@ backdel(int ct, int flags)
 	    shiftchars(zlemetacs -= ct, ct);
 	} else {
 	    shiftchars(zlecs -= ct, ct);
+	    CCRIGHT();
 	}
     } else {
 	int n = ct, origcs = zlecs;
@@ -640,8 +643,8 @@ backdel(int ct, int flags)
 	while (n--)
 	    DECCS();
 	shiftchars(zlecs, origcs - zlecs);
+	CCRIGHT();
     }
-    CCRIGHT();
 }
 
 /**/
@@ -653,6 +656,7 @@ foredel(int ct, int flags)
 	    shiftchars(zlemetacs, ct);
 	} else if (flags & CUT_RAW) {
 	    shiftchars(zlecs, ct);
+	    CCRIGHT();
 	}
     } else {
 	int origcs = zlecs;
@@ -663,8 +667,8 @@ foredel(int ct, int flags)
 	ct = zlecs - origcs;
 	zlecs = origcs;
 	shiftchars(zlecs, ct);
+	CCRIGHT();
     }
-    CCRIGHT();
 }
 
 /**/
@@ -672,7 +676,8 @@ void
 setline(char *s, int flags)
 {
     char *scp;
-	
+
+    UNMETACHECK();
     if (flags & ZSL_COPY)
 	scp = ztrdup(s);
     else