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 #8248)
This commit is contained in:
Christian Brabandt
2021-05-29 19:53:50 +02:00
committed by Bram Moolenaar
parent 74ede80aeb
commit 1d3a14ecf0
5 changed files with 26 additions and 3 deletions

View File

@ -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

View File

@ -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"));

View File

@ -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);
}
}

View File

@ -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

View File

@ -750,6 +750,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
2905,
/**/
2904,
/**/