Mercurial > vim
changeset 34464:9702c63dd040 v9.1.0146
patch 9.1.0146: v:echospace wrong with invalid value of 'showcmdloc'
Commit: https://github.com/vim/vim/commit/c27fcf4857228bc650943246ffbba444a085b3e7
Author: zeertzjq <zeertzjq@outlook.com>
Date: Fri Mar 1 23:01:43 2024 +0100
patch 9.1.0146: v:echospace wrong with invalid value of 'showcmdloc'
Problem: v:echospace wrong after setting invalid value to 'showcmdloc'.
Solution: Only call comp_col() if value is valid.
(zeertzjq)
closes: #14119
Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Fri, 01 Mar 2024 23:15:08 +0100 |
parents | 4944acf6b46f |
children | 0b78387f225b |
files | src/optionstr.c src/testdir/test_messages.vim src/version.c |
diffstat | 3 files changed, 14 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/optionstr.c +++ b/src/optionstr.c @@ -3440,8 +3440,12 @@ 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); + char *errmsg = did_set_opt_strings(p_sloc, p_sloc_values, FALSE); + + if (errmsg == NULL) + comp_col(); + + return errmsg; } int
--- a/src/testdir/test_messages.vim +++ b/src/testdir/test_messages.vim @@ -166,6 +166,12 @@ func Test_echospace() call assert_equal(&columns - 19, v:echospace) set showcmdloc=tabline call assert_equal(&columns - 19, v:echospace) + call assert_fails('set showcmdloc=leap', 'E474:') + call assert_equal(&columns - 19, v:echospace) + set showcmdloc=last + call assert_equal(&columns - 29, v:echospace) + call assert_fails('set showcmdloc=jump', 'E474:') + call assert_equal(&columns - 29, v:echospace) set ruler& showcmd& showcmdloc& endfunc