Problem: No error when defaults.vim cannot be loaded.
Solution: Add an error message. (Christian Brabandt, closes #8248)
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
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"));
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)
{
&& !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);
}
}
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
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 2905,
/**/
2904,
/**/