# HG changeset patch # User vimboss # Date 1237382478 0 # Node ID cf0979c30cafc4fbe239ebb9de3c427a265207a3 # Parent dc81a4fc63185c72c940e8ade45b5e1534523351 updated for version 7.2-144 diff --git a/src/option.c b/src/option.c --- 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) diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -677,6 +677,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 144, +/**/ 143, /**/ 142,