]> granicus.if.org Git - vim/commitdiff
patch 8.2.2875: cancelling inputlist() after a digit does not return zero v8.2.2875
author=?UTF-8?q?Luka=20Marku=C5=A1i=C4=87?= <luka.markusic@microblink.com>
Thu, 20 May 2021 19:14:20 +0000 (21:14 +0200)
committerBram Moolenaar <Bram@vim.org>
Thu, 20 May 2021 19:14:20 +0000 (21:14 +0200)
Problem:    Cancelling inputlist() after a digit does not return zero.
Solution:   Always return zero when cancelling. (closes #8231)

src/misc1.c
src/testdir/test_functions.vim
src/version.c

index a72dc9bf212ea6a469e87ea53ec4fe713d2bb156..7cac06b9262cd82df552975e25869c88103a922d 100644 (file)
@@ -946,7 +946,12 @@ get_number(
            do_redraw = FALSE;
            break;
        }
-       else if (c == CAR || c == NL || c == Ctrl_C || c == ESC || c == 'q')
+       else if (c == Ctrl_C || c == ESC || c == 'q')
+       {
+           n = 0;
+           break;
+       }
+       else if (c == CAR || c == NL )
            break;
     }
     --no_mapping;
index 96cf16ce46aa7ad05f6dd7c3eaca4a39a8d83c63..b4d462b86c03e42ed6536c59ca554c416e0fc1fb 100644 (file)
@@ -1480,6 +1480,10 @@ func Test_inputlist()
   call feedkeys(":let c = inputlist(['Select color:', '1. red', '2. green', '3. blue'])\<cr>q", 'tx')
   call assert_equal(0, c)
 
+  " Cancel after inputting a number
+  call feedkeys(":let c = inputlist(['Select color:', '1. red', '2. green', '3. blue'])\<cr>5q", 'tx')
+  call assert_equal(0, c)
+
   " Use backspace to delete characters in the prompt
   call feedkeys(":let c = inputlist(['Select color:', '1. red', '2. green', '3. blue'])\<cr>1\<BS>3\<BS>2\<cr>", 'tx')
   call assert_equal(2, c)
index 7f163f8a3c7cbd3d51b7c3d2f2d80da2305c548b..d593a2207360f97ed093cc9c7ab32e323d55a7fb 100644 (file)
@@ -750,6 +750,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2875,
 /**/
     2874,
 /**/