Mercurial > vim
changeset 24733:08eced3add83 v8.2.2905
patch 8.2.2905: no error when defaults.vim cannot be loaded
Commit: https://github.com/vim/vim/commit/1d3a14ecf0cdde026984894c592dc140a2b46887
Author: Christian Brabandt <cb@256bit.org>
Date: Sat May 29 19:53:50 2021 +0200
patch 8.2.2905: no error when defaults.vim cannot be loaded
Problem: No error when defaults.vim cannot be loaded.
Solution: Add an error message. (Christian Brabandt, closes https://github.com/vim/vim/issues/8248)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 29 May 2021 20:00:04 +0200 |
parents | c0f0fca0a06c |
children | 8cb237a2f8e4 |
files | runtime/doc/starting.txt src/errors.h src/main.c src/testdir/test_startup.vim src/version.c |
diffstat | 5 files changed, 26 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/runtime/doc/starting.txt +++ b/runtime/doc/starting.txt @@ -1036,7 +1036,7 @@ giving the mapping. Defaults without a .vimrc file ~ - *defaults.vim* + *defaults.vim* *E1187* If Vim is started normally and no user vimrc file is found, the $VIMRUNTIME/defaults.vim script is loaded. This will set 'compatible' off, switch on syntax highlighting and a few more things. See the script for
--- a/src/errors.h +++ b/src/errors.h @@ -413,3 +413,5 @@ EXTERN char e_missing_redir_end[] INIT(= N_("E1185: Missing :redir END")); EXTERN char e_expression_does_not_result_in_value_str[] INIT(= N_("E1186: Expression does not result in a value: %s")); +EXTERN char e_failed_to_source_defaults[] + INIT(= N_("E1187: Failed to source defaults.vim"));
--- a/src/main.c +++ b/src/main.c @@ -3128,7 +3128,11 @@ source_startup_scripts(mparm_T *parmp) if (parmp->use_vimrc != NULL) { if (STRCMP(parmp->use_vimrc, "DEFAULTS") == 0) - do_source((char_u *)VIM_DEFAULTS_FILE, FALSE, DOSO_NONE, NULL); + { + if (do_source((char_u *)VIM_DEFAULTS_FILE, FALSE, DOSO_NONE, NULL) + != OK) + emsg(e_failed_to_source_defaults); + } else if (STRCMP(parmp->use_vimrc, "NONE") == 0 || STRCMP(parmp->use_vimrc, "NORC") == 0) { @@ -3200,7 +3204,9 @@ source_startup_scripts(mparm_T *parmp) && !has_dash_c_arg) { // When no .vimrc file was found: source defaults.vim. - do_source((char_u *)VIM_DEFAULTS_FILE, FALSE, DOSO_NONE, NULL); + if (do_source((char_u *)VIM_DEFAULTS_FILE, FALSE, DOSO_NONE, + NULL) == FAIL) + emsg(e_failed_to_source_defaults); } }
--- a/src/testdir/test_startup.vim +++ b/src/testdir/test_startup.vim @@ -276,6 +276,19 @@ func Test_V_arg() call assert_match("sourcing \"$VIMRUNTIME[\\/]defaults\.vim\"\r\nline 1: \" The default vimrc file\..* verbose=15\n", out) endfunc +" Test that an error is shown when the defaults.vim file could not be read +func Test_defaults_error() + " Can't catch the output of gvim. + CheckNotGui + CheckNotMSWindows + + let out = system('VIMRUNTIME=/tmp ' .. GetVimCommand() .. ' --clean -cq') + call assert_match("E1187: Failed to source defaults.vim", out) + + let out = system('VIMRUNTIME=/tmp ' .. GetVimCommand() .. ' -u DEFAULTS -cq') + call assert_match("E1187: Failed to source defaults.vim", out) +endfunc + " Test the '-q [errorfile]' argument. func Test_q_arg() CheckFeature quickfix