]> granicus.if.org Git - vim/commitdiff
patch 8.2.3012: when 'rightleft' is set the line number is drawn reversed v8.2.3012
authorChristian Brabandt <cb@256bit.org>
Wed, 16 Jun 2021 17:28:34 +0000 (19:28 +0200)
committerBram Moolenaar <Bram@vim.org>
Wed, 16 Jun 2021 17:28:34 +0000 (19:28 +0200)
Problem:    When 'rightleft' is set the line number is sometimes drawn
            reversed.
Solution:   Adjust how space is handled. (Christian Brabandt, closes #8389,
            closes #8391)

src/drawline.c
src/testdir/test_number.vim
src/version.c

index 7b6777e64c13857c75514307008be508b559fbcf..b1210b78f4431b70af929407fefef7fac9c5adfa 100644 (file)
@@ -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;
index 93f8282e07ee378b613c235df4a29922c421bfa8..13f8de719d893c68bdb6892eec87e84bbfc9d600 100644 (file)
@@ -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
index dbb6d7ecda06a504bbbeace54cb2925ef80f4fe5..1b23c664d5c61adcd893397f90c7777b4fda922c 100644 (file)
@@ -750,6 +750,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    3012,
 /**/
     3011,
 /**/