From 492b6cec28d70eb4ef34054f414dd1e80102e857 Mon Sep 17 00:00:00 2001 From: Oliver Kiddle Date: Mon, 17 Nov 2014 22:47:59 +0100 Subject: 33635: adapt region to function as vim style visual selection mode --- Src/Zle/zle_misc.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'Src/Zle/zle_misc.c') 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); -- cgit 1.4.1