# HG changeset patch # User Bram Moolenaar # Date 1548351006 -3600 # Node ID b440c7becbca5654b0c8361fa104d5fe739d8c47 # Parent d436af1c3beb2f2e349f9fa2f537340687fe2d74 patch 8.1.0812: Unicode 16 feature is not useful commit https://github.com/vim/vim/commit/9ba6117de6dc2993f8b42ccb9754c23694db2950 Author: Bram Moolenaar Date: Thu Jan 24 18:20:17 2019 +0100 patch 8.1.0812: Unicode 16 feature is not useful Problem: Unicode 16 feature is not useful and cannot be detected. Solution: Remove UNICODE16. diff --git a/src/feature.h b/src/feature.h --- a/src/feature.h +++ b/src/feature.h @@ -601,10 +601,6 @@ * Now always enabled. */ -/* Define this if you want to use 16 bit Unicode only, reduces memory used for - * the screen structures. */ -/* #define UNICODE16 */ - /* * +multi_byte_ime Win32 IME input method. Only for far-east Windows, so * IME can be used to input chars. Not tested much! diff --git a/src/screen.c b/src/screen.c --- a/src/screen.c +++ b/src/screen.c @@ -2515,12 +2515,7 @@ text_to_screenline(win_T *wp, char_u *te 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; + ScreenLinesUC[idx] = u8c; for (i = 0; i < Screen_mco; ++i) { ScreenLinesC[i][idx] = u8cc[i]; @@ -4482,34 +4477,17 @@ win_line( 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 - ))) + || (mb_l > 1 && (!vim_isprintc(mb_c)))) { /* * Illegal UTF-8 byte: display as . * Non-BMP character : display as ? or fullwidth ?. */ -# ifdef UNICODE16 - if (mb_c < 0x10000) -# endif - { - transchar_hex(extra, mb_c); + transchar_hex(extra, mb_c); # ifdef FEAT_RIGHTLEFT - if (wp->w_p_rl) /* reverse */ - rl_mirror(extra); + if (wp->w_p_rl) /* reverse */ + 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; mb_c = mb_ptr2char_adv(&p_extra); @@ -7478,15 +7456,6 @@ screen_puts_len( else u8c = utfc_ptr2char(ptr, u8cc); mbyte_cells = utf_char2cells(u8c); -#ifdef UNICODE16 - /* Non-BMP character: display as ? or fullwidth ?. */ - if (u8c >= 0x10000) - { - u8c = (mbyte_cells == 2) ? 0xff1f : (int)'?'; - if (attr == 0) - attr = HL_ATTR(HLF_8); - } -#endif #ifdef FEAT_ARABIC if (p_arshape && !p_tbidi && ARABIC_CHAR(u8c)) { diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -788,6 +788,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 812, +/**/ 811, /**/ 810, diff --git a/src/vim.h b/src/vim.h --- a/src/vim.h +++ b/src/vim.h @@ -431,15 +431,9 @@ typedef unsigned short sattr_T; /* * The u8char_T can hold one decoded UTF-8 character. - * We normally use 32 bits now, since some Asian characters don't fit in 16 - * bits. u8char_T is only used for displaying, it could be 16 bits to save - * memory. + * We use 32 bits, since some Asian characters don't fit in 16 bits. */ -#ifdef UNICODE16 -typedef unsigned short u8char_T; /* short should be 16 bits */ -#else -typedef unsigned int u8char_T; /* int is 32 bits or more */ -#endif +typedef unsigned int u8char_T; // int is 32 bits or more #ifndef UNIX /* For Unix this is included in os_unix.h */ # include