summaryrefslogtreecommitdiff
path: root/Src/Zle/zle_misc.c
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Zle/zle_misc.c')
-rw-r--r--Src/Zle/zle_misc.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/Src/Zle/zle_misc.c b/Src/Zle/zle_misc.c
index 3e6d1aaac..5996c485d 100644
--- a/Src/Zle/zle_misc.c
+++ b/Src/Zle/zle_misc.c
@@ -446,9 +446,12 @@ killregion(UNUSED(char **args))
if (mark > zlell)
mark = zlell;
if (mark > zlecs)
- forekill(mark - zlecs, CUT_RAW);
- else
+ forekill(mark - zlecs + invicmdmode(), CUT_RAW);
+ else {
+ if (invicmdmode())
+ INCCS();
backkill(zlecs - mark, CUT_FRONT|CUT_RAW);
+ }
return 0;
}
@@ -465,9 +468,9 @@ copyregionaskill(char **args)
if (mark > zlell)
mark = zlell;
if (mark > zlecs)
- cut(zlecs, mark - zlecs, 0);
+ cut(zlecs, mark - zlecs + invicmdmode(), 0);
else
- cut(mark, zlecs - mark, CUT_FRONT);
+ cut(mark, zlecs - mark + invicmdmode(), CUT_FRONT);
}
return 0;
}
@@ -1016,7 +1019,8 @@ quoteregion(UNUSED(char **args))
mark = zlecs;
zlecs = tmp;
}
- str = (ZLE_STRING_T)hcalloc((len = mark - zlecs) * ZLE_CHAR_SIZE);
+ str = (ZLE_STRING_T)hcalloc((len = mark - zlecs + invicmdmode()) *
+ ZLE_CHAR_SIZE);
ZS_memcpy(str, zleline + zlecs, len);
foredel(len, CUT_RAW);
str = makequote(str, &len);