1
0
forked from aniani/vim

patch 9.0.0343: ColorScheme autocommand triggered when colorscheme not found

Problem:    ColorScheme autocommand triggered when colorscheme is not found.
            (Romain Lafourcade)
Solution:   Only trigger ColorScheme when loading the colorscheme succeeds.
            (closes #11024)
This commit is contained in:
Bram Moolenaar
2022-08-31 21:17:10 +01:00
parent 21c3a80a7f
commit 5d09a401ec
3 changed files with 15 additions and 3 deletions

View File

@@ -507,7 +507,9 @@ load_colors(char_u *name)
sprintf((char *)buf, "colors/%s.vim", name); sprintf((char *)buf, "colors/%s.vim", name);
retval = source_runtime(buf, DIP_START + DIP_OPT); retval = source_runtime(buf, DIP_START + DIP_OPT);
vim_free(buf); vim_free(buf);
apply_autocmds(EVENT_COLORSCHEME, name, curbuf->b_fname, FALSE, curbuf); if (retval == OK)
apply_autocmds(EVENT_COLORSCHEME, name, curbuf->b_fname,
FALSE, curbuf);
} }
recursive = FALSE; recursive = FALSE;

View File

@@ -36,8 +36,12 @@ func Test_colorscheme()
let g:color_count = 0 let g:color_count = 0
augroup TestColors augroup TestColors
au! au!
au ColorScheme * let g:color_count += 1| let g:after_colors = g:color_count au ColorScheme * let g:color_count += 1
au ColorSchemePre * let g:color_count += 1 |let g:before_colors = g:color_count \ | let g:after_colors = g:color_count
\ | let g:color_after = expand('<amatch>')
au ColorSchemePre * let g:color_count += 1
\ | let g:before_colors = g:color_count
\ | let g:color_pre = expand('<amatch>')
augroup END augroup END
colorscheme torte colorscheme torte
@@ -45,6 +49,8 @@ func Test_colorscheme()
call assert_equal('dark', &background) call assert_equal('dark', &background)
call assert_equal(1, g:before_colors) call assert_equal(1, g:before_colors)
call assert_equal(2, g:after_colors) call assert_equal(2, g:after_colors)
call assert_equal('torte', g:color_pre)
call assert_equal('torte', g:color_after)
call assert_equal("\ntorte", execute('colorscheme')) call assert_equal("\ntorte", execute('colorscheme'))
let a = substitute(execute('hi Search'), "\n\\s\\+", ' ', 'g') let a = substitute(execute('hi Search'), "\n\\s\\+", ' ', 'g')
@@ -53,6 +59,8 @@ func Test_colorscheme()
call assert_match("\nSearch xxx term=reverse ", a) call assert_match("\nSearch xxx term=reverse ", a)
call assert_fails('colorscheme does_not_exist', 'E185:') call assert_fails('colorscheme does_not_exist', 'E185:')
call assert_equal('does_not_exist', g:color_pre)
call assert_equal('torte', g:color_after)
exec 'colorscheme' colorscheme_saved exec 'colorscheme' colorscheme_saved
augroup TestColors augroup TestColors

View File

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