summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Brabandt <cb@256bit.org>2021-06-16 19:28:34 +0200
committerBram Moolenaar <Bram@vim.org>2021-06-16 19:28:34 +0200
commit29f0dc3689eafcf7888e06d57d1cf79e62c5c148 (patch)
tree218c3e329f5c8edccd1da7c94921858c3ea61321
parent6bc30b05e6081bcaece6d1a7fcfca238ea5a194f (diff)
patch 8.2.3012: when 'rightleft' is set the line number is drawn reversedv8.2.3012
Problem: When 'rightleft' is set the line number is sometimes drawn reversed. Solution: Adjust how space is handled. (Christian Brabandt, closes #8389, closes #8391)
-rw-r--r--src/drawline.c5
-rw-r--r--src/testdir/test_number.vim22
-rw-r--r--src/version.c2
3 files changed, 27 insertions, 2 deletions
diff --git a/src/drawline.c b/src/drawline.c
index 7b6777e64c..b1210b78f4 100644
--- a/src/drawline.c
+++ b/src/drawline.c
@@ -1121,8 +1121,9 @@ win_line(
int t;
// like rl_mirror(), but keep the space at the end
- p2 = skiptowhite(extra) - 1;
- for (p1 = extra; p1 < p2; ++p1, --p2)
+ p2 = skipwhite(extra);
+ p2 = skiptowhite(p2) - 1;
+ for (p1 = skipwhite(extra); p1 < p2; ++p1, --p2)
{
t = *p1;
*p1 = *p2;
diff --git a/src/testdir/test_number.vim b/src/testdir/test_number.vim
index 93f8282e07..13f8de719d 100644
--- a/src/testdir/test_number.vim
+++ b/src/testdir/test_number.vim
@@ -298,4 +298,26 @@ func Test_relativenumber_colors()
call delete('XTest_relnr')
endfunc
+" Test for displaying line numbers with 'rightleft'
+func Test_number_rightleft()
+ CheckFeature rightleft
+ new
+ setlocal number
+ setlocal rightleft
+ call setline(1, range(1, 1000))
+ normal! 9Gzt
+ redraw!
+ call assert_match('^\s\+9 9$', Screenline(1))
+ normal! 10Gzt
+ redraw!
+ call assert_match('^\s\+01 10$', Screenline(1))
+ normal! 100Gzt
+ redraw!
+ call assert_match('^\s\+001 100$', Screenline(1))
+ normal! 1000Gzt
+ redraw!
+ call assert_match('^\s\+0001 1000$', Screenline(1))
+ bw!
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/version.c b/src/version.c
index dbb6d7ecda..1b23c664d5 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 3012,
+/**/
3011,
/**/
3010,