changeset 34459:321281d8b353 v9.1.0145

patch 9.1.0145: v:echospace not correct when 'showcmdloc' != last Commit: https://github.com/vim/vim/commit/062141b1a70cf5364e6983ec901282e0111745c1 Author: Sam-programs <130783534+Sam-programs@users.noreply.github.com> Date: Thu Feb 29 17:40:29 2024 +0100 patch 9.1.0145: v:echospace not correct when 'showcmdloc' != last Problem: the amount of available space (v:echospace) on the command line is not correct when showcmdloc is drawn into the statusline or tabline. Solution: only add SHOWCMD_COLS to the shown command column when 'showcmdloc' is set to last (Sam-programs) closes: #14108 Co-authored-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Sam-programs <130783534+Sam-programs@users.noreply.github.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Thu, 29 Feb 2024 18:00:04 +0100
parents bbad1a9e04d3
children 01b0ed95d5c6
files src/optionstr.c src/screen.c src/testdir/test_messages.vim src/version.c
diffstat 4 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/optionstr.c
+++ b/src/optionstr.c
@@ -3440,6 +3440,7 @@ did_set_showbreak(optset_T *args)
     char *
 did_set_showcmdloc(optset_T *args UNUSED)
 {
+    comp_col();
     return did_set_opt_strings(p_sloc, p_sloc_values, FALSE);
 }
 
--- a/src/screen.c
+++ b/src/screen.c
@@ -4536,7 +4536,7 @@ comp_col(void)
 	if (!last_has_status)
 	    sc_col = ru_col;
     }
-    if (p_sc)
+    if (p_sc && *p_sloc == 'l')
     {
 	sc_col += SHOWCMD_COLS;
 	if (!p_ru || last_has_status)	    // no need for separating space
--- a/src/testdir/test_messages.vim
+++ b/src/testdir/test_messages.vim
@@ -162,8 +162,12 @@ func Test_echospace()
   call assert_equal(&columns - 12, v:echospace)
   set showcmd ruler
   call assert_equal(&columns - 29, v:echospace)
+  set showcmdloc=statusline
+  call assert_equal(&columns - 19, v:echospace)
+  set showcmdloc=tabline
+  call assert_equal(&columns - 19, v:echospace)
 
-  set ruler& showcmd&
+  set ruler& showcmd& showcmdloc&
 endfunc
 
 func Test_warning_scroll()
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    145,
+/**/
     144,
 /**/
     143,