patch 8.1.1913: not easy to compute the space on the command line
Problem: Not easy to compute the space on the command line.
Solution: Add v:echospace. (Daniel Hahler, closes #4732)
diff --git a/src/eval.c b/src/eval.c
index 5c5fd2f..9a2642c 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -201,6 +201,7 @@
{VV_NAME("termblinkresp", VAR_STRING), VV_RO},
{VV_NAME("event", VAR_DICT), VV_RO},
{VV_NAME("versionlong", VAR_NUMBER), VV_RO},
+ {VV_NAME("echospace", VAR_NUMBER), VV_RO},
};
/* shorthand */
@@ -389,6 +390,8 @@
set_vim_var_nr(VV_TYPE_CHANNEL, VAR_TYPE_CHANNEL);
set_vim_var_nr(VV_TYPE_BLOB, VAR_TYPE_BLOB);
+ set_vim_var_nr(VV_ECHOSPACE, sc_col - 1);
+
set_reg_var(0); /* default for v:register is not 0 but '"' */
#ifdef EBCDIC
diff --git a/src/option.c b/src/option.c
index 6d3a059..215d48a 100644
--- a/src/option.c
+++ b/src/option.c
@@ -10881,6 +10881,9 @@
sc_col = Columns;
ru_col = Columns;
#endif
+#ifdef FEAT_EVAL
+ set_vim_var_nr(VV_ECHOSPACE, sc_col - 1);
+#endif
}
#if defined(FEAT_PYTHON) || defined(FEAT_PYTHON3) || defined(PROTO)
diff --git a/src/testdir/test_messages.vim b/src/testdir/test_messages.vim
index 8c6c854..f122917 100644
--- a/src/testdir/test_messages.vim
+++ b/src/testdir/test_messages.vim
@@ -155,3 +155,20 @@
exe buf . 'bwipe!'
call delete(testfile)
endfunc
+
+func Test_echospace()
+ set noruler noshowcmd laststatus=1
+ call assert_equal(&columns - 1, v:echospace)
+ split
+ call assert_equal(&columns - 1, v:echospace)
+ set ruler
+ call assert_equal(&columns - 1, v:echospace)
+ close
+ call assert_equal(&columns - 19, v:echospace)
+ set showcmd noruler
+ call assert_equal(&columns - 12, v:echospace)
+ set showcmd ruler
+ call assert_equal(&columns - 29, v:echospace)
+
+ set ruler& showcmd&
+endfunc
diff --git a/src/version.c b/src/version.c
index dfe1438..ee4c964 100644
--- a/src/version.c
+++ b/src/version.c
@@ -762,6 +762,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1913,
+/**/
1912,
/**/
1911,
diff --git a/src/vim.h b/src/vim.h
index 254d3ef..dca8748 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -1981,7 +1981,8 @@
#define VV_TERMBLINKRESP 89
#define VV_EVENT 90
#define VV_VERSIONLONG 91
-#define VV_LEN 92 // number of v: vars
+#define VV_ECHOSPACE 92
+#define VV_LEN 93 // number of v: vars
// used for v_number in VAR_SPECIAL
#define VVAL_FALSE 0L