summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-04-12 14:23:19 +0100
committerBram Moolenaar <Bram@vim.org>2022-04-12 14:23:19 +0100
commit60895f3e36def9beb7d5463e792e5154ad9a7a0a (patch)
treee27a7746b43c278eb9ec66ef3a23086cf34a75bd
parent575445200bd35283191ecd7a0d596b37c5b477a4 (diff)
patch 8.2.4741: startup test failsv8.2.4741
Problem: Startup test fails. Solution: Avoid an error for verbose expansion. Fix that the "0verbose" command modifier doesn't work.
-rw-r--r--runtime/syntax/synload.vim2
-rw-r--r--runtime/syntax/syntax.vim3
-rw-r--r--src/ex_docmd.c9
-rw-r--r--src/structs.h3
-rw-r--r--src/testdir/test_excmd.vim8
-rw-r--r--src/version.c2
6 files changed, 19 insertions, 8 deletions
diff --git a/runtime/syntax/synload.vim b/runtime/syntax/synload.vim
index f373161c7c..728b653d8e 100644
--- a/runtime/syntax/synload.vim
+++ b/runtime/syntax/synload.vim
@@ -37,7 +37,7 @@ fun! s:SynSet()
unlet b:current_syntax
endif
- let s = expand("<amatch>")
+ 0verbose let s = expand("<amatch>")
if s == "ON"
" :set syntax=ON
if &filetype == ""
diff --git a/runtime/syntax/syntax.vim b/runtime/syntax/syntax.vim
index f274d93f4f..4cb02887a1 100644
--- a/runtime/syntax/syntax.vim
+++ b/runtime/syntax/syntax.vim
@@ -28,8 +28,9 @@ endif
" Set up the connection between FileType and Syntax autocommands.
" This makes the syntax automatically set when the file type is detected.
+" Avoid an error when 'verbose' is set and <amatch> expansion fails.
augroup syntaxset
- au! FileType * exe "set syntax=" . expand("<amatch>")
+ au! FileType * 0verbose exe "set syntax=" . expand("<amatch>")
augroup END
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 42824d7bb4..ceb500dc13 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -3084,7 +3084,11 @@ parse_command_modifiers(
if (!checkforcmd_noparen(&p, "verbose", 4))
break;
if (vim_isdigit(*eap->cmd))
+ {
cmod->cmod_verbose = atoi((char *)eap->cmd);
+ if (cmod->cmod_verbose == 0)
+ cmod->cmod_verbose = -1;
+ }
else
cmod->cmod_verbose = 1;
eap->cmd = p;
@@ -3158,11 +3162,11 @@ apply_cmdmod(cmdmod_T *cmod)
cmod->cmod_did_sandbox = TRUE;
}
#endif
- if (cmod->cmod_verbose > 0)
+ if (cmod->cmod_verbose != 0)
{
if (cmod->cmod_verbose_save == 0)
cmod->cmod_verbose_save = p_verbose + 1;
- p_verbose = cmod->cmod_verbose;
+ p_verbose = cmod->cmod_verbose < 0 ? 0 : cmod->cmod_verbose;
}
if ((cmod->cmod_flags & (CMOD_SILENT | CMOD_UNSILENT))
@@ -8999,6 +9003,7 @@ find_cmdline_var(char_u *src, int *usedlen)
* "<cfile>" to path name under the cursor
* "<sfile>" to sourced file name
* "<stack>" to call stack
+ * "<script>" to current script name
* "<slnum>" to sourced file line number
* "<afile>" to file name for autocommand
* "<abuf>" to buffer number for autocommand
diff --git a/src/structs.h b/src/structs.h
index 670e0d229a..05ea6fc522 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -662,7 +662,8 @@ typedef struct
regmatch_T cmod_filter_regmatch; // set by :filter /pat/
int cmod_filter_force; // set for :filter!
- int cmod_verbose; // non-zero to set 'verbose'
+ int cmod_verbose; // non-zero to set 'verbose', -1 is
+ // used for zero override
// values for undo_cmdmod()
char_u *cmod_save_ei; // saved value of 'eventignore'
diff --git a/src/testdir/test_excmd.vim b/src/testdir/test_excmd.vim
index 731e9aa94f..16d435bf0e 100644
--- a/src/testdir/test_excmd.vim
+++ b/src/testdir/test_excmd.vim
@@ -580,10 +580,12 @@ endfunc
" Test for the :verbose command
func Test_verbose_cmd()
- call assert_equal([' verbose=1'], split(execute('verbose set vbs'), "\n"))
+ set verbose=3
+ call assert_match(' verbose=1\n\s*Last set from ', execute('verbose set vbs'), "\n")
call assert_equal([' verbose=0'], split(execute('0verbose set vbs'), "\n"))
- let l = execute("4verbose set verbose | set verbose")
- call assert_equal([' verbose=4', ' verbose=0'], split(l, "\n"))
+ set verbose=0
+ call assert_match(' verbose=4\n\s*Last set from .*\n verbose=0',
+ \ execute("4verbose set verbose | set verbose"))
endfunc
" Test for the :delete command and the related abbreviated commands
diff --git a/src/version.c b/src/version.c
index 5ef4e74972..c07ae9dbe5 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 4741,
+/**/
4740,
/**/
4739,