changeset 24950:18a00b2b9c27 v8.2.3012

patch 8.2.3012: when 'rightleft' is set the line number is drawn reversed Commit: https://github.com/vim/vim/commit/29f0dc3689eafcf7888e06d57d1cf79e62c5c148 Author: Christian Brabandt <cb@256bit.org> Date: Wed Jun 16 19:28:34 2021 +0200 patch 8.2.3012: when 'rightleft' is set the line number is drawn reversed Problem: When 'rightleft' is set the line number is sometimes drawn reversed. Solution: Adjust how space is handled. (Christian Brabandt, closes #8389, closes #8391)
author Bram Moolenaar <Bram@vim.org>
date Wed, 16 Jun 2021 19:30:05 +0200
parents 0b6693288329
children 8972f6de0a40
files src/drawline.c src/testdir/test_number.vim src/version.c
diffstat 3 files changed, 27 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- 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;
--- 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
--- 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,