diff src/screen.c @ 16918:21cddcc6fbe8 v8.1.1460

patch 8.1.1460: popup window border characters may be wrong commit https://github.com/vim/vim/commit/02e15072be08ef4ae03d673fc95ed6234e749e1c Author: Bram Moolenaar <Bram@vim.org> Date: Mon Jun 3 22:53:30 2019 +0200 patch 8.1.1460: popup window border characters may be wrong Problem: Popup window border characters may be wrong. Solution: Reset the border characters for each popup. Correct use of 'ambiwidth'.
author Bram Moolenaar <Bram@vim.org>
date Mon, 03 Jun 2019 23:00:06 +0200
parents 90cec755ff80
children 03f3a9ca2770
line wrap: on
line diff
--- a/src/screen.c
+++ b/src/screen.c
@@ -1041,7 +1041,7 @@ update_popups(void)
     int	    total_height;
     int	    popup_attr;
     int	    border_attr[4];
-    int	    border_char[8] = {'-', '|', '-', '|', '+', '+', '+', '+', };
+    int	    border_char[8];
     char_u  buf[MB_MAXBYTES];
     int	    row;
     int	    i;
@@ -1080,7 +1080,7 @@ update_popups(void)
 
 	// We can only use these line drawing characters when 'encoding' is
 	// "utf-8" and 'ambiwidth' is "single".
-	if (enc_utf8 && p_ambw == 's')
+	if (enc_utf8 && *p_ambw == 's')
 	{
 	    border_char[0] = border_char[2] = 0x2550;
 	    border_char[1] = border_char[3] = 0x2551;
@@ -1089,6 +1089,13 @@ update_popups(void)
 	    border_char[6] = 0x255d;
 	    border_char[7] = 0x255a;
 	}
+	else
+	{
+	    border_char[0] = border_char[2] = '-';
+	    border_char[1] = border_char[3] = '|';
+	    for (i = 4; i < 8; ++i)
+		border_char[i] = '+';
+	}
 	for (i = 0; i < 8; ++i)
 	    if (wp->w_border_char[i] != 0)
 		border_char[i] = wp->w_border_char[i];