patch 9.0.1172: when 'selection' is "exclusive" then "1v" is one char short

Problem:    When 'selection' is "exclusive" then "1v" is one char short.
Solution:   Add one character when 'selection' is "exclusive. (closes #11791)
diff --git a/src/normal.c b/src/normal.c
index cc4e246..c319be5 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -5472,7 +5472,9 @@
 		if (resel_VIsual_line_count <= 1)
 		{
 		    update_curswant_force();
-		    curwin->w_curswant += resel_VIsual_vcol * cap->count0 - 1;
+		    curwin->w_curswant += resel_VIsual_vcol * cap->count0;
+		    if (*p_sel != 'e')
+			--curwin->w_curswant;
 		}
 		else
 		    curwin->w_curswant = resel_VIsual_vcol;
diff --git a/src/testdir/test_visual.vim b/src/testdir/test_visual.vim
index 573a2cf..df781a0 100644
--- a/src/testdir/test_visual.vim
+++ b/src/testdir/test_visual.vim
@@ -1336,6 +1336,18 @@
   bwipe!
 endfunc
 
+func Test_visual_reselect_exclusive()
+  new
+  call setline(1, ['abcde', 'abcde'])
+  set selection=exclusive
+  normal 1G0viwd
+  normal 2G01vd
+  call assert_equal(['', ''], getline(1, 2))
+
+  set selection&
+  bwipe!
+endfunc
+
 func Test_visual_block_insert_round_off()
   new
   " The number of characters are tuned to fill a 4096 byte allocated block,
diff --git a/src/version.c b/src/version.c
index da397ee..6ab7b95 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1172,
+/**/
     1171,
 /**/
     1170,