summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrbtnn <naru123456789@gmail.com>2022-02-09 11:55:47 +0000
committerBram Moolenaar <Bram@vim.org>2022-02-09 11:55:47 +0000
commit68cc2b8a37197872e737fb61244069e13b7227a2 (patch)
tree8e349fcf2007d03dec30632bd318568dfe4c26fd
parentb6a138eb334621f60c5891d035f80f398d59dbd3 (diff)
downloadvim-git-8.2.4334.tar.gz
patch 8.2.4334: command line popup menu not positioned correctlyv8.2.4334
Problem: Command line popup menu not positioned correctly. Solution: Also use vim_strsize() on the existing text. (Naruhiko Nishino, closes #9727)
-rw-r--r--src/cmdexpand.c2
-rw-r--r--src/testdir/dumps/Test_wildmenu_pum_32.dump10
-rw-r--r--src/testdir/test_cmdline.vim11
-rw-r--r--src/version.c2
4 files changed, 24 insertions, 1 deletions
diff --git a/src/cmdexpand.c b/src/cmdexpand.c
index b37c4f9ac..2463ed53e 100644
--- a/src/cmdexpand.c
+++ b/src/cmdexpand.c
@@ -622,7 +622,7 @@ showmatches(expand_T *xp, int wildmenu UNUSED)
compl_match_array[i].pum_extra = NULL;
compl_match_array[i].pum_kind = NULL;
}
- compl_startcol = ccline->cmdpos + 1;
+ compl_startcol = vim_strsize(ccline->cmdbuff) + 1;
columns = vim_strsize(xp->xp_pattern);
if (showtail)
{
diff --git a/src/testdir/dumps/Test_wildmenu_pum_32.dump b/src/testdir/dumps/Test_wildmenu_pum_32.dump
new file mode 100644
index 000000000..a8a0dfe5c
--- /dev/null
+++ b/src/testdir/dumps/Test_wildmenu_pum_32.dump
@@ -0,0 +1,10 @@
+| +0&#ffffff0@74
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @12| +0#0000001#e0e0e08|1|2|3| @11| +0#4040ff13#ffffff0@44
+|~| @12| +0#0000001#ffd7ff255|a|b|c| @11| +0#4040ff13#ffffff0@44
+|~| @12| +0#0000001#ffd7ff255|x|y|z| @11| +0#4040ff13#ffffff0@44
+|:+0#0000000&|e| |X|d|i|r|/|あ*&|い|う|/+&|1|2|3> @56
diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim
index 175647dd1..c40d653d3 100644
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -2141,6 +2141,17 @@ func Test_wildmenu_pum()
call TermWait(buf)
call VerifyScreenDump(buf, 'Test_wildmenu_pum_31', {})
+ " Tests a directory name contained full-width characters.
+ call mkdir('Xdir/あいう', 'p')
+ call writefile([], 'Xdir/あいう/abc')
+ call writefile([], 'Xdir/あいう/xyz')
+ call writefile([], 'Xdir/あいう/123')
+
+ call term_sendkeys(buf, "\<C-U>set wildmode&\<CR>")
+ call term_sendkeys(buf, ":\<C-U>e Xdir/あいう/\<Tab>")
+ call TermWait(buf)
+ call VerifyScreenDump(buf, 'Test_wildmenu_pum_32', {})
+
call term_sendkeys(buf, "\<C-U>\<CR>")
call StopVimInTerminal(buf)
call delete('Xtest')
diff --git a/src/version.c b/src/version.c
index a4480e186..9ef520ebc 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 4334,
+/**/
4333,
/**/
4332,