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:
@@ -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;
|
||||||
|
|
||||||
|
@@ -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
|
||||||
|
@@ -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,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user