]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.1.1437: MS-Windows: internal compile error in uc_list() v9.1.1437
authorMike Williams <mrmrdubya@gmail.com>
Sun, 8 Jun 2025 13:41:52 +0000 (15:41 +0200)
committerChristian Brabandt <cb@256bit.org>
Sun, 8 Jun 2025 13:41:52 +0000 (15:41 +0200)
Problem:  MS-Windows: internal compile error in uc_list() with VS 17.14
          (ibear)
Solution: refactor code slightly (Mike Williams)

fixes: #17402
closes: #17464

Signed-off-by: Mike Williams <mrmrdubya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
src/testdir/test_usercommands.vim
src/usercmd.c
src/version.c

index deea5dfa3489693b582b6cd6514e219e1158ee1b..d950308ee0ec12a9e31ec203028c1527dba5df0d 100644 (file)
@@ -965,5 +965,24 @@ func Test_comclear_while_listing()
   call StopVimInTerminal(buf)
 endfunc
 
+" Test for listing user commands.
+func Test_command_list_0()
+  " Check space padding of attribute and name in command list
+  set vbs&
+  command! ShortCommand echo "ShortCommand"
+  command! VeryMuchLongerCommand echo "VeryMuchLongerCommand"
+
+  redi @"> | com | redi END
+  pu
+
+  let bl = matchbufline(bufnr('%'), "^    ShortCommand      0", 1, '$')
+  call assert_false(bl == [])
+  let bl = matchbufline(bufnr('%'), "^    VeryMuchLongerCommand 0", 1, '$')
+  call assert_false(bl == [])
+
+  bwipe!
+  delcommand ShortCommand
+  delcommand VeryMuchLongerCommand
+endfunc
 
 " vim: shiftwidth=2 sts=2 expandtab
index ded11e759b1798876ca7ec8f86601abd1dfc7c84..9f1efb4b7e8d1d6c928902916eb9bac900832eb8 100644 (file)
@@ -600,17 +600,21 @@ uc_list(char_u *name, size_t name_len)
                msg_putchar('|');
                --len;
            }
-           while (len-- > 0)
-               msg_putchar(' ');
+           if (len != 0)
+               msg_puts(&"    "[4 - len]);
 
            msg_outtrans_attr(cmd->uc_name, HL_ATTR(HLF_D));
            len = (int)cmd->uc_namelen + 4;
 
-           do
+           if (len < 21)
            {
-               msg_putchar(' ');
-               ++len;
-           } while (len < 22);
+               // Field padding spaces   12345678901234567
+               static char spaces[18] = "                 ";
+               msg_puts(&spaces[len - 4]);
+               len = 21;
+           }
+           msg_putchar(' ');
+           ++len;
 
            // "over" is how much longer the name is than the column width for
            // the name, we'll try to align what comes after.
index 31f1854d5a0111a06c82f60af50d49a05832e110..3d83858bab56a27adaede42bacfcca5395f7e7ca 100644 (file)
@@ -709,6 +709,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1437,
 /**/
     1436,
 /**/