]> granicus.if.org Git - vim/commitdiff
patch 8.1.1460: popup window border characters may be wrong v8.1.1460
authorBram Moolenaar <Bram@vim.org>
Mon, 3 Jun 2019 20:53:30 +0000 (22:53 +0200)
committerBram Moolenaar <Bram@vim.org>
Mon, 3 Jun 2019 20:53:30 +0000 (22:53 +0200)
Problem:    Popup window border characters may be wrong.
Solution:   Reset the border characters for each popup.  Correct use of
            'ambiwidth'.

src/screen.c
src/version.c

index d72d7792cc64704a818614481dd795a7bb324b2f..8092fd2448851c750df64edcc8ff148b2b11c483 100644 (file)
@@ -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];
index accea72f1e67a4ddaa064ca63ff7b7c59391c090..eeaa5efc85cedb8a3293f1d6475cd3d54647cbb8 100644 (file)
@@ -767,6 +767,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1460,
 /**/
     1459,
 /**/