From c5db02d79276a06854907805d011aa2605a0b14b Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Sun, 31 Mar 2019 11:00:14 -0400 Subject: [PATCH] vim-patch:8.1.1073: space in number column is on wrong side with 'rightleft' set Problem: Space in number column is on wrong side with 'rightleft' set. Solution: Move the space to the text side. Add a test. https://github.com/vim/vim/commit/e73f911c53de1c87e39456ba20782f72a0ca8f4f --- src/nvim/screen.c | 11 +++++++++-- src/nvim/testdir/test_diffmode.vim | 3 +++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/nvim/screen.c b/src/nvim/screen.c index edddfd8ed3..fd070c6653 100644 --- a/src/nvim/screen.c +++ b/src/nvim/screen.c @@ -2772,8 +2772,15 @@ win_line ( if (wp->w_skipcol > 0) for (p_extra = extra; *p_extra == ' '; ++p_extra) *p_extra = '-'; - if (wp->w_p_rl) /* reverse line numbers */ - rl_mirror(extra); + if (wp->w_p_rl) { // reverse line numbers + // like rl_mirror(), but keep the space at the end + char_u *p2 = skiptowhite(extra) - 1; + for (char_u *p1 = extra; p1 < p2; p1++, p2--) { + const int t = *p1; + *p1 = *p2; + *p2 = t; + } + } p_extra = extra; c_extra = NUL; c_final = NUL; diff --git a/src/nvim/testdir/test_diffmode.vim b/src/nvim/testdir/test_diffmode.vim index b2e75265a6..00f4563f3d 100644 --- a/src/nvim/testdir/test_diffmode.vim +++ b/src/nvim/testdir/test_diffmode.vim @@ -763,6 +763,9 @@ func Test_diff_of_diff() call VerifyScreenDump(buf, 'Test_diff_of_diff_01', {}) + call term_sendkeys(buf, ":set rightleft\") + call VerifyScreenDump(buf, 'Test_diff_of_diff_02', {}) + " clean up call StopVimInTerminal(buf) call delete('Xtest_diff_diff')