From ef02f16609ff0a26ffc6e20263523424980898fe Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sat, 7 May 2022 10:49:10 +0100 Subject: [PATCH] patch 8.2.4899: with latin1 encoding CTRL-W might go before the cmdline Problem: With latin1 encoding CTRL-W might go before the start of the command line. Solution: Check already being at the start of the command line. --- src/ex_getln.c | 11 +++++++---- src/testdir/test_cmdline.vim | 3 +++ src/version.c | 2 ++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/ex_getln.c b/src/ex_getln.c index a97024b35171..7020f5143a01 100644 --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -1635,10 +1635,13 @@ { while (p > ccline.cmdbuff && vim_isspace(p[-1])) --p; - i = vim_iswordc(p[-1]); - while (p > ccline.cmdbuff && !vim_isspace(p[-1]) - && vim_iswordc(p[-1]) == i) - --p; + if (p > ccline.cmdbuff) + { + i = vim_iswordc(p[-1]); + while (p > ccline.cmdbuff && !vim_isspace(p[-1]) + && vim_iswordc(p[-1]) == i) + --p; + } } else --p; diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim index 474638fb00d6..5a849f77f755 100644 --- a/src/testdir/test_cmdline.vim +++ b/src/testdir/test_cmdline.vim @@ -641,6 +641,19 @@ let &lines = lines let &columns = columns endfunc + +func Test_cmdline_remove_char() + let encoding_save = &encoding + + for e in ['utf8', 'latin1'] + exe 'set encoding=' . e + + " This was going before the start in latin1. + call feedkeys(": \\", 'tx') + endfor + + let &encoding = encoding_save +endfunc set cpo& diff --git a/src/version.c b/src/version.c index 201d26f06eb9..05888c722e8e 100644 --- a/src/version.c +++ b/src/version.c @@ -795,6 +795,8 @@ static char *(features[]) = 805, /**/ 5024, +/**/ + 4899, /**/ 4428, /**/