| To: vim-dev@vim.org |
| Subject: patch 7.1.116 |
| Fcc: outbox |
| From: Bram Moolenaar <Bram@moolenaar.net> |
| Mime-Version: 1.0 |
| Content-Type: text/plain; charset=ISO-8859-1 |
| Content-Transfer-Encoding: 8bit |
| |
| |
| Patch 7.1.116 |
| Problem: Cannot display Unicode characters above 0x10000. |
| Solution: Remove the replacement with a question mark when UNICODE16 is not |
| defined. (partly by Nicolas Weber) |
| Files: src/screen.c |
| |
| |
| |
| |
| |
| *** 2305,2313 **** |
| --- 2305,2315 ---- |
| prev_c = u8c; |
| #endif |
| /* Non-BMP character: display as ? or fullwidth ?. */ |
| + #ifdef UNICODE16 |
| if (u8c >= 0x10000) |
| ScreenLinesUC[idx] = (cells == 2) ? 0xff1f : (int)'?'; |
| else |
| + #endif |
| ScreenLinesUC[idx] = u8c; |
| for (i = 0; i < Screen_mco; ++i) |
| { |
| |
| *** 3678,3690 **** |
| if ((mb_l == 1 && c >= 0x80) |
| || (mb_l >= 1 && mb_c == 0) |
| || (mb_l > 1 && (!vim_isprintc(mb_c) |
| ! || mb_c >= 0x10000))) |
| { |
| /* |
| * Illegal UTF-8 byte: display as <xx>. |
| * Non-BMP character : display as ? or fullwidth ?. |
| */ |
| if (mb_c < 0x10000) |
| { |
| transchar_hex(extra, mb_c); |
| # ifdef FEAT_RIGHTLEFT |
| --- 3680,3697 ---- |
| if ((mb_l == 1 && c >= 0x80) |
| || (mb_l >= 1 && mb_c == 0) |
| || (mb_l > 1 && (!vim_isprintc(mb_c) |
| ! # ifdef UNICODE16 |
| ! || mb_c >= 0x10000 |
| ! # endif |
| ! ))) |
| { |
| /* |
| * Illegal UTF-8 byte: display as <xx>. |
| * Non-BMP character : display as ? or fullwidth ?. |
| */ |
| + # ifdef UNICODE16 |
| if (mb_c < 0x10000) |
| + # endif |
| { |
| transchar_hex(extra, mb_c); |
| # ifdef FEAT_RIGHTLEFT |
| |
| *** 3692,3702 **** |
| --- 3699,3711 ---- |
| rl_mirror(extra); |
| # endif |
| } |
| + # ifdef UNICODE16 |
| else if (utf_char2cells(mb_c) != 2) |
| STRCPY(extra, "?"); |
| else |
| /* 0xff1f in UTF-8: full-width '?' */ |
| STRCPY(extra, "\357\274\237"); |
| + # endif |
| |
| p_extra = extra; |
| c = *p_extra; |
| |
| *** 6245,6250 **** |
| --- 6254,6260 ---- |
| else |
| u8c = utfc_ptr2char(ptr, u8cc); |
| mbyte_cells = utf_char2cells(u8c); |
| + # ifdef UNICODE16 |
| /* Non-BMP character: display as ? or fullwidth ?. */ |
| if (u8c >= 0x10000) |
| { |
| |
| *** 6252,6257 **** |
| --- 6262,6268 ---- |
| if (attr == 0) |
| attr = hl_attr(HLF_8); |
| } |
| + # endif |
| # ifdef FEAT_ARABIC |
| if (p_arshape && !p_tbidi && ARABIC_CHAR(u8c)) |
| { |
| |
| |
| |
| *** 668,669 **** |
| --- 668,671 ---- |
| { /* Add new patch number below this line */ |
| + /**/ |
| + 116, |
| /**/ |
| |
| -- |
| There can't be a crisis today, my schedule is already full. |
| |
| /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ |
| /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ |
| \\\ download, build and distribute -- http://www.A-A-P.org /// |
| \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |