changeset 28220:73c5dbdc4236 v8.2.4636

patch 8.2.4636: not using Visual range Commit: https://github.com/vim/vim/commit/1501b63f8dedbd15ee5bfd9a177e558ffdf0673a Author: Bram Moolenaar <Bram@vim.org> Date: Sun Mar 27 16:56:21 2022 +0100 patch 8.2.4636: not using Visual range Problem: Not using Visual range. Solution: Put the command pointer back to the range.
author Bram Moolenaar <Bram@vim.org>
date Sun, 27 Mar 2022 18:00:04 +0200
parents 1b6553ab16e5
children 50a14b45797e
files src/ex_docmd.c src/version.c
diffstat 2 files changed, 17 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -3092,15 +3092,21 @@ parse_command_modifiers(
 	break;
     }
 
-    if (has_visual_range && eap->cmd > cmd_start)
-    {
-	// Move the '<,'> range to after the modifiers and insert a colon.
-	// Since the modifiers have been parsed put the colon on top of the
-	// space: "'<,'>mod cmd" -> "mod:'<,'>cmd
-	// Put eap->cmd after the colon.
-	mch_memmove(cmd_start - 5, cmd_start, eap->cmd - cmd_start);
-	eap->cmd -= 5;
-	mch_memmove(eap->cmd - 1, ":'<,'>", 6);
+    if (has_visual_range)
+    {
+	if (eap->cmd > cmd_start)
+	{
+	    // Move the '<,'> range to after the modifiers and insert a colon.
+	    // Since the modifiers have been parsed put the colon on top of the
+	    // space: "'<,'>mod cmd" -> "mod:'<,'>cmd
+	    // Put eap->cmd after the colon.
+	    mch_memmove(cmd_start - 5, cmd_start, eap->cmd - cmd_start);
+	    eap->cmd -= 5;
+	    mch_memmove(eap->cmd - 1, ":'<,'>", 6);
+	}
+	else
+	    // no modifiers, move the pointer back
+	    eap->cmd -= 5;
     }
 
     return OK;
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4636,
+/**/
     4635,
 /**/
     4634,