]> granicus.if.org Git - vim/commitdiff
patch 9.0.0883: a silent mapping may cause dots on the command line v9.0.0883
authorBram Moolenaar <Bram@vim.org>
Mon, 14 Nov 2022 22:07:45 +0000 (22:07 +0000)
committerBram Moolenaar <Bram@vim.org>
Mon, 14 Nov 2022 22:07:45 +0000 (22:07 +0000)
Problem:    A silent mapping may cause dots on the command line.
Solution:   Don't show dots for completion if they are not going to be removed
            again. (closes #11501)

runtime/doc/map.txt
src/cmdexpand.c
src/version.c

index c33c9f8696f949895b28c64f799b106f889db007..494b6290fa0cfe189b33d21c226320e439994f60 100644 (file)
@@ -234,6 +234,9 @@ The search string will not be echoed when using this mapping.  Messages from
 the executed command are still given though.  To shut them up too, add a
 ":silent" in the executed command: >
        :map <silent> ,h :exe ":silent normal /Header\r"<CR>
+Note that the effect of a command might also be silenced, e.g., when the
+mapping selects another entry for command line completion it won't be
+displayed.
 Prompts will still be given, e.g., for inputdialog().
 Using "<silent>" for an abbreviation is possible, but will cause redrawing of
 the command line to fail.
index 4f12625388ce0c69e1cc30f159ffdd44696e0b9a..228d4bc095919b744290d72929a56be017baefd5 100644 (file)
@@ -226,8 +226,13 @@ nextwild(
        return FAIL;
     }
 
-    msg_puts("...");       // show that we are busy
-    out_flush();
+    // If cmd_silent is set then don't show the dots, because redrawcmd() below
+    // won't remove them.
+    if (!cmd_silent)
+    {
+       msg_puts("...");            // show that we are busy
+       out_flush();
+    }
 
     i = (int)(xp->xp_pattern - ccline->cmdbuff);
     xp->xp_pattern_len = ccline->cmdpos - i;
index a35a172acee9090e2c7d9f7fb5a3e77610561f4a..7fae79d38bdf012e07aa21147300879cde9f3442 100644 (file)
@@ -695,6 +695,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    883,
 /**/
     882,
 /**/