]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.1.1383: completion: 'isexpand' option does not handle space char correct v9.1.1383
authorglepnir <glephunter@gmail.com>
Mon, 12 May 2025 18:28:28 +0000 (20:28 +0200)
committerChristian Brabandt <cb@256bit.org>
Mon, 12 May 2025 18:28:28 +0000 (20:28 +0200)
Problem:  When a space character is used as a trigger in 'isexpand' option
          it doesn't get recognized because skip_to_option_part() skips
          spaces after a comma, treating them as option separators
          rather than option value (after v9.1.1341)
Solution: manually set the part to a space character (glepnir).

closes: #17305

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
src/insexpand.c
src/testdir/test_ins_complete.vim
src/version.c

index bb280fa4659b8ae98f27d51b4e1b1c968f10d1d4..5f5a5b90579c6b9972adcafc66521e5df3c003df 100644 (file)
@@ -3665,7 +3665,15 @@ f_complete_match(typval_T *argvars, typval_T *rettv)
 
        while (*p != NUL)
        {
-           int len = copy_option_part(&p, part, MAXPATHL, ",");
+           int     len = 0;
+           if (*p == ',' && *(p+1) == ' ' && (*(p+2) == ',' || *(p+2) == NUL))
+           {
+               part[0] = ' ';
+               len = 1;
+               p++;
+           }
+           else
+               len = copy_option_part(&p, part, MAXPATHL, ",");
 
            if (len > 0 && len <= col)
            {
index f7292ea34c0e8bac4c2cbc3ca0ca80526f9cfd01..741cc9d9c97eacb12f29cb1bc133bb619d1ea209 100644 (file)
@@ -4504,6 +4504,10 @@ func Test_complete_match()
   call feedkeys("Sabc, \<ESC>:let g:result=complete_match()\<CR>", 'tx')
   call assert_equal([[4, ',']], g:result)
 
+  set ise=\ ,=
+  call feedkeys("Sif true  \<ESC>:let g:result=complete_match()\<CR>", 'tx')
+  call assert_equal([[8, ' ']], g:result)
+
   bw!
   unlet g:result
   set isexpand&
index 816ce5c15aaceb3148d60f7bf0df9115debaf4c6..4a9ad83dd980fbca266a191964e2ea3f53e15bec 100644 (file)
@@ -704,6 +704,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1383,
 /**/
     1382,
 /**/