@@ -3011,25 +3011,15 @@ cterm_color2rgb(int nr, VTermColor *rgb)
30113011}
30123012
30133013/*
3014- * Create a new vterm and initialize it .
3014+ * Initialize term->tl_default_color from the environment .
30153015 */
30163016 static void
3017- create_vterm (term_T * term , int rows , int cols )
3017+ init_default_colors (term_T * term )
30183018{
3019- VTerm * vterm ;
3020- VTermScreen * screen ;
3021- VTermValue value ;
30223019 VTermColor * fg , * bg ;
30233020 int fgval , bgval ;
30243021 int id ;
30253022
3026- vterm = vterm_new (rows , cols );
3027- term -> tl_vterm = vterm ;
3028- screen = vterm_obtain_screen (vterm );
3029- vterm_screen_set_callbacks (screen , & screen_callbacks , term );
3030- /* TODO: depends on 'encoding'. */
3031- vterm_set_utf8 (vterm , 1 );
3032-
30333023 vim_memset (& term -> tl_default_color .attrs , 0 , sizeof (VTermScreenCellAttrs ));
30343024 term -> tl_default_color .width = 1 ;
30353025 fg = & term -> tl_default_color .fg ;
@@ -3152,8 +3142,31 @@ create_vterm(term_T *term, int rows, int cols)
31523142 term_get_bg_color (& bg -> red , & bg -> green , & bg -> blue );
31533143# endif
31543144 }
3145+ }
3146+
3147+ /*
3148+ * Create a new vterm and initialize it.
3149+ */
3150+ static void
3151+ create_vterm (term_T * term , int rows , int cols )
3152+ {
3153+ VTerm * vterm ;
3154+ VTermScreen * screen ;
3155+ VTermValue value ;
3156+
3157+ vterm = vterm_new (rows , cols );
3158+ term -> tl_vterm = vterm ;
3159+ screen = vterm_obtain_screen (vterm );
3160+ vterm_screen_set_callbacks (screen , & screen_callbacks , term );
3161+ /* TODO: depends on 'encoding'. */
3162+ vterm_set_utf8 (vterm , 1 );
31553163
3156- vterm_state_set_default_colors (vterm_obtain_state (vterm ), fg , bg );
3164+ init_default_colors (term );
3165+
3166+ vterm_state_set_default_colors (
3167+ vterm_obtain_state (vterm ),
3168+ & term -> tl_default_color .fg ,
3169+ & term -> tl_default_color .bg );
31573170
31583171 /* Required to initialize most things. */
31593172 vterm_screen_reset (screen , 1 /* hard */ );
@@ -3767,6 +3780,8 @@ term_load_dump(typval_T *argvars, typval_T *rettv, int do_diff)
37673780 VTermPos cursor_pos1 ;
37683781 VTermPos cursor_pos2 ;
37693782
3783+ init_default_colors (term );
3784+
37703785 rettv -> vval .v_number = buf -> b_fnum ;
37713786
37723787 /* read the files, fill the buffer with the diff */
0 commit comments