@@ -1031,6 +1031,12 @@ update_popups(void)
10311031 int total_height ;
10321032 int popup_attr ;
10331033 int row ;
1034+ int tl_corner_char = '+' ;
1035+ char * tr_corner_str = "+" ;
1036+ int bl_corner_char = '+' ;
1037+ char * br_corner_str = "+" ;
1038+ int hor_line_char = '-' ;
1039+ char * ver_line_str = "|" ;
10341040
10351041 // Find the window with the lowest zindex that hasn't been updated yet,
10361042 // so that the window with a higher zindex is drawn later, thus goes on
@@ -1062,16 +1068,27 @@ update_popups(void)
10621068 + wp -> w_height + wp -> w_popup_padding [2 ] + wp -> w_popup_border [2 ];
10631069 popup_attr = get_wcr_attr (wp );
10641070
1071+ if (enc_utf8 )
1072+ {
1073+ tl_corner_char = 0x2554 ;
1074+ tr_corner_str = "\xe2\x95\x97" ;
1075+ bl_corner_char = 0x255a ;
1076+ br_corner_str = "\xe2\x95\x9d" ;
1077+ hor_line_char = 0x2550 ;
1078+ ver_line_str = "\xe2\x95\x91" ;
1079+ }
1080+
10651081 if (wp -> w_popup_border [0 ] > 0 )
10661082 {
10671083 // top border
10681084 screen_fill (wp -> w_winrow , wp -> w_winrow + 1 ,
10691085 wp -> w_wincol ,
10701086 wp -> w_wincol + total_width ,
1071- wp -> w_popup_border [3 ] != 0 ? '+' : '-' ,
1072- '-' , popup_attr );
1087+ wp -> w_popup_border [3 ] != 0
1088+ ? tl_corner_char : hor_line_char ,
1089+ hor_line_char , popup_attr );
10731090 if (wp -> w_popup_border [1 ] > 0 )
1074- screen_puts ((char_u * )"+" , wp -> w_winrow ,
1091+ screen_puts ((char_u * )tr_corner_str , wp -> w_winrow ,
10751092 wp -> w_wincol + total_width - 1 , popup_attr );
10761093 }
10771094
@@ -1091,14 +1108,14 @@ update_popups(void)
10911108 {
10921109 // left border
10931110 if (wp -> w_popup_border [3 ] > 0 )
1094- screen_puts ((char_u * )"|" , row , wp -> w_wincol , popup_attr );
1111+ screen_puts ((char_u * )ver_line_str , row , wp -> w_wincol , popup_attr );
10951112 // left padding
10961113 if (wp -> w_popup_padding [3 ] > 0 )
10971114 screen_puts (get_spaces (wp -> w_popup_padding [3 ]), row ,
10981115 wp -> w_wincol + wp -> w_popup_border [3 ], popup_attr );
10991116 // right border
11001117 if (wp -> w_popup_border [1 ] > 0 )
1101- screen_puts ((char_u * )"|" , row ,
1118+ screen_puts ((char_u * )ver_line_str , row ,
11021119 wp -> w_wincol + total_width - 1 , popup_attr );
11031120 // right padding
11041121 if (wp -> w_popup_padding [1 ] > 0 )
@@ -1125,10 +1142,10 @@ update_popups(void)
11251142 screen_fill (row , row + 1 ,
11261143 wp -> w_wincol ,
11271144 wp -> w_wincol + total_width ,
1128- wp -> w_popup_border [3 ] != 0 ? '+' : '-' ,
1129- '-' , popup_attr );
1145+ wp -> w_popup_border [3 ] != 0 ? bl_corner_char : hor_line_char ,
1146+ hor_line_char , popup_attr );
11301147 if (wp -> w_popup_border [1 ] > 0 )
1131- screen_puts ((char_u * )"+" , row ,
1148+ screen_puts ((char_u * )br_corner_str , row ,
11321149 wp -> w_wincol + total_width - 1 , popup_attr );
11331150 }
11341151 }
0 commit comments