about summary refs log tree commit diff
path: root/Src
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 /Src
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
Diffstat (limited to 'Src')
-rw-r--r--Src/Zle/zle_utils.c11
1 files changed, 8 insertions, 3 deletions
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