Mercurial > vim
changeset 1846:cf0979c30caf v7.2.144
updated for version 7.2-144
author | vimboss |
---|---|
date | Wed, 18 Mar 2009 13:21:18 +0000 |
parents | dc81a4fc6318 |
children | 44fe912b5a1b |
files | src/option.c src/version.c |
diffstat | 2 files changed, 19 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/src/option.c +++ b/src/option.c @@ -6022,15 +6022,23 @@ did_set_string_option(opt_idx, varp, new /* ":set t_Co=0" and ":set t_Co=1" do ":set t_Co=" */ if (varp == &T_CCO) { - t_colors = atoi((char *)T_CCO); - if (t_colors <= 1) - { - if (new_value_alloced) - vim_free(T_CCO); - T_CCO = empty_option; - } - /* We now have a different color setup, initialize it again. */ - init_highlight(TRUE, FALSE); + int colors = atoi((char *)T_CCO); + + /* Only reinitialize colors if t_Co value has really changed to + * avoid expensive reload of colorscheme if t_Co is set to the + * same value multiple times. */ + if (colors != t_colors) + { + t_colors = colors; + if (t_colors <= 1) + { + if (new_value_alloced) + vim_free(T_CCO); + T_CCO = empty_option; + } + /* We now have a different color setup, initialize it again. */ + init_highlight(TRUE, FALSE); + } } ttest(FALSE); if (varp == &T_ME)