diff options
author | rbtnn <naru123456789@gmail.com> | 2022-02-09 11:55:47 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-02-09 11:55:47 +0000 |
commit | 68cc2b8a37197872e737fb61244069e13b7227a2 (patch) | |
tree | 8e349fcf2007d03dec30632bd318568dfe4c26fd | |
parent | b6a138eb334621f60c5891d035f80f398d59dbd3 (diff) | |
download | vim-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.c | 2 | ||||
-rw-r--r-- | src/testdir/dumps/Test_wildmenu_pum_32.dump | 10 | ||||
-rw-r--r-- | src/testdir/test_cmdline.vim | 11 | ||||
-rw-r--r-- | src/version.c | 2 |
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, |