# HG changeset patch # User Bram Moolenaar # Date 1622311204 -7200 # Node ID 08eced3add83652196b3ba70a99503bf3921ffb6 # Parent c0f0fca0a06c05b90d86ed8cbc6a7f8ec329a6d7 patch 8.2.2905: no error when defaults.vim cannot be loaded Commit: https://github.com/vim/vim/commit/1d3a14ecf0cdde026984894c592dc140a2b46887 Author: Christian Brabandt 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) diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt --- 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 diff --git a/src/errors.h b/src/errors.h --- 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")); diff --git a/src/main.c b/src/main.c --- 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); } } diff --git a/src/testdir/test_startup.vim b/src/testdir/test_startup.vim --- 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 diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2905, +/**/ 2904, /**/ 2903,