diff options
author | Gary Johnson <garyjohn@spocom.com> | 2023-12-27 19:12:43 +0100 |
---|---|---|
committer | Christian Brabandt <cb@256bit.org> | 2023-12-27 19:12:43 +0100 |
commit | 9e6549d2fb282c45a2492ea95fe7ba54c2082c3e (patch) | |
tree | 560540448903d99f9c92924d1cbf6862dfaee29a /src | |
parent | 23627722d36b49e38ba6f8dc6bb3ebe19c98a83b (diff) |
patch 9.0.2188: cursor wrong after { in single line bufferv9.0.2188
Problem: cursor wrong after { in single line buffer
(Edwin Chan)
Solution: do not place the cursor at the end for a single
line buffer when moving backwards
(Gary Johnson)
closes: #13780
closes: #13783
Signed-off-by: Gary Johnson <garyjohn@spocom.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/testdir/test_normal.vim | 17 | ||||
-rw-r--r-- | src/textobject.c | 2 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 20 insertions, 1 deletions
diff --git a/src/testdir/test_normal.vim b/src/testdir/test_normal.vim index 6b889f46b3..90bedf1800 100644 --- a/src/testdir/test_normal.vim +++ b/src/testdir/test_normal.vim @@ -4164,4 +4164,21 @@ func Test_normal34_zet_large() norm! z9765405999999999999 endfunc +" Test for { and } paragraph movements in a single line +func Test_brace_single_line() + let text =<< trim [DATA] + foobar one two three + [DATA] + + new + call setline(1, text) + 1 + norm! 0} + + call assert_equal([0, 1, 20, 0], getpos('.')) + norm! { + call assert_equal([0, 1, 1, 0], getpos('.')) + bw! +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/textobject.c b/src/textobject.c index b315d0320c..d03b6244ed 100644 --- a/src/textobject.c +++ b/src/textobject.c @@ -226,7 +226,7 @@ findpar( if (both && *ml_get(curr) == '}') // include line with '}' ++curr; curwin->w_cursor.lnum = curr; - if (curr == curbuf->b_ml.ml_line_count && what != '}') + if (curr == curbuf->b_ml.ml_line_count && what != '}' && dir == FORWARD) { char_u *line = ml_get(curr); diff --git a/src/version.c b/src/version.c index f7dc49bfe5..db1ab217ed 100644 --- a/src/version.c +++ b/src/version.c @@ -705,6 +705,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2188, +/**/ 2187, /**/ 2186, |