Patch 9.0.1461
Problem: Ruler not drawn correctly when using 'rulerformat'.
Solution: Adjust formatting depending on whether the ruler is drawn in the
statusline or the command line. (Sean Dewar, closes #12246)
Files: src/screen.c, src/testdir/test_cmdline.vim,
src/testdir/dumps/Test_rulerformat_position.dump
*** ../vim-9.0.1460/src/screen.c 2023-03-03 12:26:11.553759303 +0000
--- src/screen.c 2023-04-17 16:39:08.380832581 +0100
***************
*** 1043,1049 ****
{
row = statusline_row(wp);
fillchar = fillchar_status(&attr, wp);
! maxwidth = wp->w_width;
if (draw_ruler)
{
--- 1043,1050 ----
{
row = statusline_row(wp);
fillchar = fillchar_status(&attr, wp);
! int in_status_line = wp->w_status_height != 0;
! maxwidth = in_status_line ? wp->w_width : Columns;
if (draw_ruler)
{
***************
*** 1060,1070 ****
if (*stl++ != '(')
stl = p_ruf;
}
! col = ru_col - (Columns - wp->w_width);
! if (col < (wp->w_width + 1) / 2)
! col = (wp->w_width + 1) / 2;
! maxwidth = wp->w_width - col;
! if (!wp->w_status_height)
{
row = Rows - 1;
--maxwidth; // writing in last column may cause scrolling
--- 1061,1071 ----
if (*stl++ != '(')
stl = p_ruf;
}
! col = ru_col - (Columns - maxwidth);
! if (col < (maxwidth + 1) / 2)
! col = (maxwidth + 1) / 2;
! maxwidth -= col;
! if (!in_status_line)
{
row = Rows - 1;
--maxwidth; // writing in last column may cause scrolling
***************
*** 1084,1090 ****
stl = p_stl;
}
! col += wp->w_wincol;
}
if (maxwidth <= 0)
--- 1085,1092 ----
stl = p_stl;
}
! if (in_status_line)
! col += wp->w_wincol;
}
if (maxwidth <= 0)
*** ../vim-9.0.1460/src/testdir/test_cmdline.vim 2023-04-17 15:53:20.353762946 +0100
--- src/testdir/test_cmdline.vim 2023-04-17 16:34:39.925477881 +0100
***************
*** 3459,3462 ****
--- 3459,3475 ----
cunmap a
endfunc
+ func Test_rulerformat_position()
+ CheckScreendump
+
+ let buf = RunVimInTerminal('', #{rows: 2, cols: 20})
+ call term_sendkeys(buf, ":set ruler rulerformat=longish\<CR>")
+ call term_sendkeys(buf, ":set laststatus=0 winwidth=1\<CR>")
+ call term_sendkeys(buf, "\<C-W>v\<C-W>|\<C-W>p")
+ call VerifyScreenDump(buf, 'Test_rulerformat_position', {})
+
+ " clean up
+ call StopVimInTerminal(buf)
+ endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
*** ../vim-9.0.1460/src/testdir/dumps/Test_rulerformat_position.dump 2023-04-17 16:40:08.100693633 +0100
--- src/testdir/dumps/Test_rulerformat_position.dump 2023-04-17 16:34:39.925477881 +0100
***************
*** 0 ****
--- 1,2 ----
+ | +0&#ffffff0@17||+1&&> +0&&
+ @10|l|o|n|g|i|s|h| @2
*** ../vim-9.0.1460/src/version.c 2023-04-17 15:53:20.353762946 +0100
--- src/version.c 2023-04-17 16:36:35.037196408 +0100
***************
*** 697,698 ****
--- 697,700 ----
{ /* Add new patch number below this line */
+ /**/
+ 1461,
/**/
--
It is illegal for anyone to give lighted cigars to dogs, cats, and other
domesticated animal kept as pets.
[real standing law in Illinois, United States of America]
/// Bram Moolenaar -- Br...@Moolenaar.net --
http://www.Moolenaar.net \\\
/// \\\
\\\ sponsor Vim, vote for features --
http://www.Vim.org/sponsor/ ///
\\\ help me help AIDS victims --
http://ICCF-Holland.org ///