summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrbtnn <naru123456789@gmail.com>2021-08-07 13:08:45 +0200
committerBram Moolenaar <Bram@vim.org>2021-08-07 13:08:45 +0200
commitc611941c606328740b6e9acc1191a5d97ace13e2 (patch)
treeda4100cd18cc0f7ccf1ee44141edd32055a0d3f2
parent3276f5846f7ad61f55175959ac21c1b4cf595352 (diff)
downloadvim-git-c611941c606328740b6e9acc1191a5d97ace13e2.tar.gz
patch 8.2.3304: popup window title with wide characters is truncatedv8.2.3304
Problem: Popup window title with wide characters is truncated. Solution: Use vim_strsize() instead of MB_CHARLEN(). (Naruhiko Nishino, closes #8721)
-rw-r--r--src/popupwin.c2
-rw-r--r--src/testdir/dumps/Test_popupwin_multibytetitle.dump2
-rw-r--r--src/testdir/test_popupwin.vim2
-rw-r--r--src/version.c2
4 files changed, 5 insertions, 3 deletions
diff --git a/src/popupwin.c b/src/popupwin.c
index 470bd7015..d86c6c0ef 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -3896,7 +3896,7 @@ update_popups(void (*win_update)(win_T *wp))
title_wincol = wp->w_wincol + 1;
if (wp->w_popup_title != NULL)
{
- title_len = (int)MB_CHARLEN(wp->w_popup_title);
+ title_len = vim_strsize(wp->w_popup_title);
// truncate the title if too long
if (title_len > total_width - 2)
diff --git a/src/testdir/dumps/Test_popupwin_multibytetitle.dump b/src/testdir/dumps/Test_popupwin_multibytetitle.dump
index e21c0cf2b..95b08717e 100644
--- a/src/testdir/dumps/Test_popupwin_multibytetitle.dump
+++ b/src/testdir/dumps/Test_popupwin_multibytetitle.dump
@@ -1,7 +1,7 @@
>1+0&#ffffff0| @73
|2| @73
|3| @73
-|4| @25|╔+0#0000001#ffd7ff255|▶|Ä|Ö|Ü|◀|═@12|╗| +0#0000000#ffffff0@27
+|4| @25|╔+0#0000001#ffd7ff255|▶|Ä|あ*&|い|う|え|お|◀+&|═@4|╗| +0#0000000#ffffff0@27
|5| @25|║+0#0000001#ffd7ff255| |T+0&#e0e0e08|h|i|s| |i|s| |a| |l|i|n|e| @1| +0&#ffd7ff255|║| +0#0000000#ffffff0@27
|6| @25|║+0#0000001#ffd7ff255| |a|n|d| |a|n|o|t|h|e|r| |l|i|n|e| |║| +0#0000000#ffffff0@27
|7| @25|╚+0#0000001#ffd7ff255|═@17|╝| +0#0000000#ffffff0@27
diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim
index 62e19fa5d..83d632eee 100644
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -1817,7 +1817,7 @@ func Test_popup_title()
call VerifyScreenDump(buf, 'Test_popupwin_longtitle_4', {})
call term_sendkeys(buf, ":call popup_clear()\<CR>")
- call term_sendkeys(buf, ":call popup_menu(['This is a line', 'and another line'], #{title: '▶ÄÖÜ◀', })\<CR>")
+ call term_sendkeys(buf, ":call popup_menu(['This is a line', 'and another line'], #{title: '▶Äあいうえお◀', })\<CR>")
call VerifyScreenDump(buf, 'Test_popupwin_multibytetitle', {})
call term_sendkeys(buf, "x")
diff --git a/src/version.c b/src/version.c
index fedc23bef..206234d9b 100644
--- a/src/version.c
+++ b/src/version.c
@@ -756,6 +756,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 3304,
+/**/
3303,
/**/
3302,