Last active
August 29, 2015 14:11
-
-
Save mattn/78477753124fb4eb84a3 to your computer and use it in GitHub Desktop.
Patch to add ambiwidth=fulldouble to display N (neutral unicode characters) as double
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff -r 8cae3b61ce9e runtime/doc/options.txt | |
--- a/runtime/doc/options.txt Mon Dec 08 04:16:45 2014 +0100 | |
+++ b/runtime/doc/options.txt Wed Dec 10 14:28:43 2014 +0900 | |
@@ -685,6 +685,7 @@ | |
"single": Use the same width as characters in US-ASCII. This is | |
expected by most users. | |
"double": Use twice the width of ASCII characters. | |
+ "fulldouble": Use twice the width for neutral characters. | |
*E834* *E835* | |
The value "double" cannot be used if 'listchars' or 'fillchars' | |
contains a character that would be double width. | |
@@ -708,6 +709,13 @@ | |
compiled with the |+termresponse| feature and if |t_u7| is set to the | |
escape sequence to request cursor position report. | |
+ Unicode consortium give data file about this East Asian Width | |
+ (http://www.unicode.org/Public/UCD/latest/ucd/EastAsianWidth.txt). | |
+ Character class W mean double, A mean ambiguous. And N mean neutral. | |
+ But most of font that contains emoticons (a.k.a emoji) displays the | |
+ character as double. If the terminal you use handles the characters as | |
+ double, you need to set "fulldouble" instead of "double". | |
+ | |
*'antialias'* *'anti'* *'noantialias'* *'noanti'* | |
'antialias' 'anti' boolean (default: off) | |
global | |
diff -r 8cae3b61ce9e runtime/tools/unicode.vim | |
--- a/runtime/tools/unicode.vim Mon Dec 08 04:16:45 2014 +0100 | |
+++ b/runtime/tools/unicode.vim Wed Dec 10 14:28:43 2014 +0900 | |
@@ -195,7 +195,7 @@ | |
let ranges = [] | |
let dataidx = 0 | |
for p in s:widthprops | |
- if p[1][0] =~ a:pattern | |
+ if p[1][0] =~ a:pattern && !(a:pattern == 'N' && p[1] =~ '#.*LATIN') | |
if p[0] =~ '\.\.' | |
" It is a range. we don't check for composing char then. | |
let rng = split(p[0], '\.\.') | |
@@ -254,7 +254,11 @@ | |
" Edit the Unicode text file. Requires the netrw plugin. | |
-edit http://unicode.org/Public/UNIDATA/UnicodeData.txt | |
+if filereadable("UnicodeData.txt") | |
+ edit UnicodeData.txt | |
+else | |
+ edit http://unicode.org/Public/UNIDATA/UnicodeData.txt | |
+endif | |
" Parse each line, create a list of lists. | |
call ParseDataToProps() | |
@@ -269,7 +273,11 @@ | |
call BuildCombiningTable() | |
" Edit the case folding text file. Requires the netrw plugin. | |
-edit http://www.unicode.org/Public/UNIDATA/CaseFolding.txt | |
+if filereadable("CaseFolding.txt") | |
+ edit CaseFolding.txt | |
+else | |
+ edit http://www.unicode.org/Public/UNIDATA/CaseFolding.txt | |
+endif | |
" Parse each line, create a list of lists. | |
call ParseFoldProps() | |
@@ -278,7 +286,11 @@ | |
call BuildFoldTable() | |
" Edit the width text file. Requires the netrw plugin. | |
-edit http://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt | |
+if filereadable("EastAsianWidth.txt") | |
+ edit EastAsianWidth.txt | |
+else | |
+ edit http://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt | |
+endif | |
" Parse each line, create a list of lists. | |
call ParseWidthProps() | |
@@ -288,3 +300,6 @@ | |
" Build the ambiguous width table. | |
call BuildWidthTable('A', 'ambiguous') | |
+ | |
+" Build the neutral width table. | |
+call BuildWidthTable('N', 'neutral') | |
diff -r 8cae3b61ce9e src/mbyte.c | |
--- a/src/mbyte.c Mon Dec 08 04:16:45 2014 +0100 | |
+++ b/src/mbyte.c Wed Dec 10 14:28:43 2014 +0900 | |
@@ -1468,6 +1468,758 @@ | |
{0xf0000, 0xffffd}, | |
{0x100000, 0x10fffd} | |
}; | |
+ /* Sorted list of non-overlapping intervals of neutral part of East Asian | |
+ * Ambiguous characters, generated with ../runtime/tools/unicode.vim. */ | |
+ static struct interval neutral[] = | |
+ { | |
+ {0x0000, 0x0040}, | |
+ {0x005b, 0x0060}, | |
+ {0x007b, 0x00a0}, | |
+ {0x00a2, 0x00a3}, | |
+ {0x00a5, 0x00a6}, | |
+ {0x00a9, 0x00a9}, | |
+ {0x00ab, 0x00ac}, | |
+ {0x00af, 0x00af}, | |
+ {0x00b5, 0x00b5}, | |
+ {0x00bb, 0x00bb}, | |
+ {0x02b0, 0x02c3}, | |
+ {0x02c5, 0x02c6}, | |
+ {0x02c8, 0x02c8}, | |
+ {0x02cc, 0x02cc}, | |
+ {0x02ce, 0x02cf}, | |
+ {0x02d1, 0x02d7}, | |
+ {0x02dc, 0x02dc}, | |
+ {0x02de, 0x02de}, | |
+ {0x02e0, 0x02ff}, | |
+ {0x0370, 0x0377}, | |
+ {0x037a, 0x037f}, | |
+ {0x0384, 0x038a}, | |
+ {0x038c, 0x038c}, | |
+ {0x038e, 0x0390}, | |
+ {0x03aa, 0x03b0}, | |
+ {0x03c2, 0x03c2}, | |
+ {0x03ca, 0x0400}, | |
+ {0x0402, 0x040f}, | |
+ {0x0450, 0x0450}, | |
+ {0x0452, 0x052f}, | |
+ {0x0531, 0x0556}, | |
+ {0x0559, 0x055f}, | |
+ {0x0561, 0x0587}, | |
+ {0x0589, 0x058a}, | |
+ {0x058d, 0x058f}, | |
+ {0x0591, 0x05be}, | |
+ {0x05c0, 0x05c6}, | |
+ {0x05d0, 0x05ea}, | |
+ {0x05f0, 0x05f4}, | |
+ {0x0600, 0x061c}, | |
+ {0x061e, 0x066f}, | |
+ {0x0671, 0x070d}, | |
+ {0x070f, 0x0710}, | |
+ {0x0712, 0x074a}, | |
+ {0x074d, 0x07b1}, | |
+ {0x07c0, 0x07fa}, | |
+ {0x0800, 0x082d}, | |
+ {0x0830, 0x083e}, | |
+ {0x0840, 0x085b}, | |
+ {0x085e, 0x085e}, | |
+ {0x08a0, 0x08b2}, | |
+ {0x08e4, 0x0902}, | |
+ {0x0904, 0x0939}, | |
+ {0x093d, 0x094c}, | |
+ {0x094e, 0x0980}, | |
+ {0x0982, 0x0983}, | |
+ {0x0985, 0x098c}, | |
+ {0x098f, 0x0990}, | |
+ {0x0993, 0x09a8}, | |
+ {0x09aa, 0x09b0}, | |
+ {0x09b2, 0x09b2}, | |
+ {0x09b6, 0x09b9}, | |
+ {0x09bd, 0x09c4}, | |
+ {0x09c7, 0x09c8}, | |
+ {0x09cb, 0x09cc}, | |
+ {0x09ce, 0x09ce}, | |
+ {0x09dc, 0x09dd}, | |
+ {0x09df, 0x09e3}, | |
+ {0x09e6, 0x09fb}, | |
+ {0x0a01, 0x0a02}, | |
+ {0x0a05, 0x0a0a}, | |
+ {0x0a0f, 0x0a10}, | |
+ {0x0a13, 0x0a28}, | |
+ {0x0a2a, 0x0a30}, | |
+ {0x0a32, 0x0a33}, | |
+ {0x0a35, 0x0a36}, | |
+ {0x0a38, 0x0a39}, | |
+ {0x0a3e, 0x0a42}, | |
+ {0x0a47, 0x0a48}, | |
+ {0x0a4b, 0x0a4d}, | |
+ {0x0a59, 0x0a5c}, | |
+ {0x0a5e, 0x0a5e}, | |
+ {0x0a66, 0x0a74}, | |
+ {0x0a81, 0x0a82}, | |
+ {0x0a85, 0x0a8d}, | |
+ {0x0a8f, 0x0a91}, | |
+ {0x0a93, 0x0aa8}, | |
+ {0x0aaa, 0x0ab0}, | |
+ {0x0ab2, 0x0ab3}, | |
+ {0x0ab5, 0x0ab9}, | |
+ {0x0abd, 0x0ac5}, | |
+ {0x0ac7, 0x0ac8}, | |
+ {0x0acb, 0x0acc}, | |
+ {0x0ad0, 0x0ad0}, | |
+ {0x0ae0, 0x0ae3}, | |
+ {0x0ae6, 0x0af1}, | |
+ {0x0b02, 0x0b03}, | |
+ {0x0b05, 0x0b0c}, | |
+ {0x0b0f, 0x0b10}, | |
+ {0x0b13, 0x0b28}, | |
+ {0x0b2a, 0x0b30}, | |
+ {0x0b32, 0x0b33}, | |
+ {0x0b35, 0x0b39}, | |
+ {0x0b3d, 0x0b3d}, | |
+ {0x0b41, 0x0b44}, | |
+ {0x0b47, 0x0b48}, | |
+ {0x0b4b, 0x0b4c}, | |
+ {0x0b5c, 0x0b5d}, | |
+ {0x0b5f, 0x0b63}, | |
+ {0x0b66, 0x0b77}, | |
+ {0x0b83, 0x0b83}, | |
+ {0x0b85, 0x0b8a}, | |
+ {0x0b8e, 0x0b90}, | |
+ {0x0b92, 0x0b95}, | |
+ {0x0b99, 0x0b9a}, | |
+ {0x0b9c, 0x0b9c}, | |
+ {0x0b9e, 0x0b9f}, | |
+ {0x0ba3, 0x0ba4}, | |
+ {0x0ba8, 0x0baa}, | |
+ {0x0bae, 0x0bb9}, | |
+ {0x0bbe, 0x0bbf}, | |
+ {0x0bc1, 0x0bc2}, | |
+ {0x0bc6, 0x0bc8}, | |
+ {0x0bca, 0x0bcc}, | |
+ {0x0bd0, 0x0bd0}, | |
+ {0x0be6, 0x0bfa}, | |
+ {0x0c01, 0x0c03}, | |
+ {0x0c05, 0x0c0c}, | |
+ {0x0c0e, 0x0c10}, | |
+ {0x0c12, 0x0c28}, | |
+ {0x0c2a, 0x0c39}, | |
+ {0x0c3d, 0x0c44}, | |
+ {0x0c46, 0x0c48}, | |
+ {0x0c4a, 0x0c4d}, | |
+ {0x0c55, 0x0c56}, | |
+ {0x0c58, 0x0c59}, | |
+ {0x0c60, 0x0c63}, | |
+ {0x0c66, 0x0c6f}, | |
+ {0x0c78, 0x0c7f}, | |
+ {0x0c82, 0x0c83}, | |
+ {0x0c85, 0x0c8c}, | |
+ {0x0c8e, 0x0c90}, | |
+ {0x0c92, 0x0ca8}, | |
+ {0x0caa, 0x0cb3}, | |
+ {0x0cb5, 0x0cb9}, | |
+ {0x0cbd, 0x0cbd}, | |
+ {0x0cc0, 0x0cc4}, | |
+ {0x0cc7, 0x0cc8}, | |
+ {0x0cca, 0x0ccd}, | |
+ {0x0cd5, 0x0cd6}, | |
+ {0x0cde, 0x0cde}, | |
+ {0x0ce0, 0x0ce3}, | |
+ {0x0ce6, 0x0cef}, | |
+ {0x0cf1, 0x0cf2}, | |
+ {0x0d02, 0x0d03}, | |
+ {0x0d05, 0x0d0c}, | |
+ {0x0d0e, 0x0d10}, | |
+ {0x0d12, 0x0d3a}, | |
+ {0x0d3d, 0x0d44}, | |
+ {0x0d46, 0x0d48}, | |
+ {0x0d4a, 0x0d4c}, | |
+ {0x0d4e, 0x0d4e}, | |
+ {0x0d60, 0x0d63}, | |
+ {0x0d66, 0x0d75}, | |
+ {0x0d79, 0x0d7f}, | |
+ {0x0d82, 0x0d83}, | |
+ {0x0d85, 0x0d96}, | |
+ {0x0d9a, 0x0db1}, | |
+ {0x0db3, 0x0dbb}, | |
+ {0x0dbd, 0x0dbd}, | |
+ {0x0dc0, 0x0dc6}, | |
+ {0x0dcf, 0x0dd4}, | |
+ {0x0dd8, 0x0ddf}, | |
+ {0x0de6, 0x0def}, | |
+ {0x0df2, 0x0df4}, | |
+ {0x0e01, 0x0e30}, | |
+ {0x0e32, 0x0e3a}, | |
+ {0x0e3f, 0x0e5b}, | |
+ {0x0e81, 0x0e82}, | |
+ {0x0e84, 0x0e84}, | |
+ {0x0e87, 0x0e88}, | |
+ {0x0e8a, 0x0e8a}, | |
+ {0x0e8d, 0x0e8d}, | |
+ {0x0e94, 0x0e97}, | |
+ {0x0e99, 0x0e9f}, | |
+ {0x0ea1, 0x0ea3}, | |
+ {0x0ea5, 0x0ea5}, | |
+ {0x0ea7, 0x0ea7}, | |
+ {0x0eaa, 0x0eab}, | |
+ {0x0ead, 0x0eb0}, | |
+ {0x0eb2, 0x0eb9}, | |
+ {0x0ebb, 0x0ebd}, | |
+ {0x0ec0, 0x0ec4}, | |
+ {0x0ec6, 0x0ec6}, | |
+ {0x0ec8, 0x0ecd}, | |
+ {0x0ed0, 0x0ed9}, | |
+ {0x0edc, 0x0edf}, | |
+ {0x0f00, 0x0f34}, | |
+ {0x0f36, 0x0f36}, | |
+ {0x0f38, 0x0f38}, | |
+ {0x0f3a, 0x0f47}, | |
+ {0x0f49, 0x0f6c}, | |
+ {0x0f71, 0x0f7e}, | |
+ {0x0f80, 0x0f97}, | |
+ {0x0f99, 0x0fbc}, | |
+ {0x0fbe, 0x0fc5}, | |
+ {0x0fc7, 0x0fcc}, | |
+ {0x0fce, 0x0fda}, | |
+ {0x1000, 0x1030}, | |
+ {0x1032, 0x1037}, | |
+ {0x1039, 0x1081}, | |
+ {0x1083, 0x108c}, | |
+ {0x108e, 0x108e}, | |
+ {0x1090, 0x109c}, | |
+ {0x109e, 0x10c5}, | |
+ {0x10c7, 0x10c7}, | |
+ {0x10cd, 0x10cd}, | |
+ {0x10d0, 0x10ff}, | |
+ {0x1160, 0x1248}, | |
+ {0x124a, 0x124d}, | |
+ {0x1250, 0x1256}, | |
+ {0x1258, 0x1258}, | |
+ {0x125a, 0x125d}, | |
+ {0x1260, 0x1288}, | |
+ {0x128a, 0x128d}, | |
+ {0x1290, 0x12b0}, | |
+ {0x12b2, 0x12b5}, | |
+ {0x12b8, 0x12be}, | |
+ {0x12c0, 0x12c0}, | |
+ {0x12c2, 0x12c5}, | |
+ {0x12c8, 0x12d6}, | |
+ {0x12d8, 0x1310}, | |
+ {0x1312, 0x1315}, | |
+ {0x1318, 0x135a}, | |
+ {0x135d, 0x137c}, | |
+ {0x1380, 0x1399}, | |
+ {0x13a0, 0x13f4}, | |
+ {0x1400, 0x169c}, | |
+ {0x16a0, 0x16f8}, | |
+ {0x1700, 0x170c}, | |
+ {0x170e, 0x1714}, | |
+ {0x1720, 0x1736}, | |
+ {0x1740, 0x1753}, | |
+ {0x1760, 0x176c}, | |
+ {0x176e, 0x1770}, | |
+ {0x1772, 0x1773}, | |
+ {0x1780, 0x17b5}, | |
+ {0x17b7, 0x17c5}, | |
+ {0x17c7, 0x17dc}, | |
+ {0x17e0, 0x17e9}, | |
+ {0x17f0, 0x17f9}, | |
+ {0x1800, 0x180e}, | |
+ {0x1810, 0x1819}, | |
+ {0x1820, 0x1877}, | |
+ {0x1880, 0x18a8}, | |
+ {0x18aa, 0x18aa}, | |
+ {0x18b0, 0x18f5}, | |
+ {0x1900, 0x191e}, | |
+ {0x1920, 0x192b}, | |
+ {0x1930, 0x1931}, | |
+ {0x1933, 0x193b}, | |
+ {0x1940, 0x1940}, | |
+ {0x1944, 0x196d}, | |
+ {0x1970, 0x1974}, | |
+ {0x1980, 0x19ab}, | |
+ {0x19b0, 0x19c9}, | |
+ {0x19d0, 0x19da}, | |
+ {0x19de, 0x1a1a}, | |
+ {0x1a1e, 0x1a54}, | |
+ {0x1a58, 0x1a5e}, | |
+ {0x1a63, 0x1a7c}, | |
+ {0x1a80, 0x1a89}, | |
+ {0x1a90, 0x1a99}, | |
+ {0x1aa0, 0x1aad}, | |
+ {0x1ab0, 0x1abd}, | |
+ {0x1b00, 0x1b03}, | |
+ {0x1b05, 0x1b33}, | |
+ {0x1b36, 0x1b3a}, | |
+ {0x1b3d, 0x1b41}, | |
+ {0x1b43, 0x1b4b}, | |
+ {0x1b50, 0x1b7c}, | |
+ {0x1b80, 0x1b81}, | |
+ {0x1b83, 0x1ba0}, | |
+ {0x1ba2, 0x1ba9}, | |
+ {0x1bab, 0x1be5}, | |
+ {0x1be8, 0x1bec}, | |
+ {0x1bef, 0x1bf3}, | |
+ {0x1bfc, 0x1c37}, | |
+ {0x1c3b, 0x1c49}, | |
+ {0x1c4d, 0x1c7f}, | |
+ {0x1cc0, 0x1cc7}, | |
+ {0x1cd0, 0x1ce0}, | |
+ {0x1ce2, 0x1cec}, | |
+ {0x1cee, 0x1cf3}, | |
+ {0x1cf5, 0x1cf6}, | |
+ {0x1cf8, 0x1cf9}, | |
+ {0x1d2c, 0x1d6a}, | |
+ {0x1d78, 0x1d78}, | |
+ {0x1d9b, 0x1df5}, | |
+ {0x1dfc, 0x1dff}, | |
+ {0x1f00, 0x1f15}, | |
+ {0x1f18, 0x1f1d}, | |
+ {0x1f20, 0x1f45}, | |
+ {0x1f48, 0x1f4d}, | |
+ {0x1f50, 0x1f57}, | |
+ {0x1f59, 0x1f59}, | |
+ {0x1f5b, 0x1f5b}, | |
+ {0x1f5d, 0x1f5d}, | |
+ {0x1f5f, 0x1f7d}, | |
+ {0x1f80, 0x1fb4}, | |
+ {0x1fb6, 0x1fc4}, | |
+ {0x1fc6, 0x1fd3}, | |
+ {0x1fd6, 0x1fdb}, | |
+ {0x1fdd, 0x1fef}, | |
+ {0x1ff2, 0x1ff4}, | |
+ {0x1ff6, 0x1ffe}, | |
+ {0x2000, 0x200f}, | |
+ {0x2011, 0x2012}, | |
+ {0x2017, 0x2017}, | |
+ {0x201a, 0x201b}, | |
+ {0x201e, 0x201f}, | |
+ {0x2023, 0x2023}, | |
+ {0x2028, 0x202f}, | |
+ {0x2031, 0x2031}, | |
+ {0x2034, 0x2034}, | |
+ {0x2036, 0x203a}, | |
+ {0x203c, 0x203d}, | |
+ {0x203f, 0x2064}, | |
+ {0x2066, 0x2070}, | |
+ {0x2075, 0x207e}, | |
+ {0x2080, 0x2080}, | |
+ {0x2085, 0x208e}, | |
+ {0x20a0, 0x20a8}, | |
+ {0x20aa, 0x20ab}, | |
+ {0x20ad, 0x20bd}, | |
+ {0x20d0, 0x20e0}, | |
+ {0x20e2, 0x20f0}, | |
+ {0x2100, 0x2102}, | |
+ {0x2104, 0x2104}, | |
+ {0x2106, 0x2108}, | |
+ {0x210a, 0x2112}, | |
+ {0x2114, 0x2115}, | |
+ {0x2117, 0x2120}, | |
+ {0x2123, 0x2125}, | |
+ {0x2127, 0x212a}, | |
+ {0x212c, 0x2152}, | |
+ {0x2155, 0x215a}, | |
+ {0x215f, 0x215f}, | |
+ {0x216c, 0x216f}, | |
+ {0x217a, 0x2182}, | |
+ {0x2185, 0x2188}, | |
+ {0x219a, 0x21b7}, | |
+ {0x21ba, 0x21d1}, | |
+ {0x21d3, 0x21d3}, | |
+ {0x21d5, 0x21e6}, | |
+ {0x21e8, 0x21ff}, | |
+ {0x2201, 0x2201}, | |
+ {0x2204, 0x2206}, | |
+ {0x2209, 0x220a}, | |
+ {0x220c, 0x220e}, | |
+ {0x2210, 0x2210}, | |
+ {0x2212, 0x2214}, | |
+ {0x2216, 0x2219}, | |
+ {0x221b, 0x221c}, | |
+ {0x2221, 0x2222}, | |
+ {0x2224, 0x2224}, | |
+ {0x2226, 0x2226}, | |
+ {0x222d, 0x222d}, | |
+ {0x222f, 0x2233}, | |
+ {0x2238, 0x223b}, | |
+ {0x223e, 0x2247}, | |
+ {0x2249, 0x224b}, | |
+ {0x224d, 0x2251}, | |
+ {0x2253, 0x225f}, | |
+ {0x2262, 0x2263}, | |
+ {0x2268, 0x2269}, | |
+ {0x226c, 0x226d}, | |
+ {0x2270, 0x2281}, | |
+ {0x2284, 0x2285}, | |
+ {0x2288, 0x2294}, | |
+ {0x2296, 0x2298}, | |
+ {0x229a, 0x22a4}, | |
+ {0x22a6, 0x22be}, | |
+ {0x22c0, 0x2311}, | |
+ {0x2313, 0x2328}, | |
+ {0x232b, 0x23fa}, | |
+ {0x2400, 0x2426}, | |
+ {0x2440, 0x244a}, | |
+ {0x24ea, 0x24ea}, | |
+ {0x254c, 0x254f}, | |
+ {0x2574, 0x257f}, | |
+ {0x2590, 0x2591}, | |
+ {0x2596, 0x259f}, | |
+ {0x25a2, 0x25a2}, | |
+ {0x25aa, 0x25b1}, | |
+ {0x25b4, 0x25b5}, | |
+ {0x25b8, 0x25bb}, | |
+ {0x25be, 0x25bf}, | |
+ {0x25c2, 0x25c5}, | |
+ {0x25c9, 0x25ca}, | |
+ {0x25cc, 0x25cd}, | |
+ {0x25d2, 0x25e1}, | |
+ {0x25e6, 0x25ee}, | |
+ {0x25f0, 0x2604}, | |
+ {0x2607, 0x2608}, | |
+ {0x260a, 0x260d}, | |
+ {0x2610, 0x2613}, | |
+ {0x2616, 0x261b}, | |
+ {0x261d, 0x261d}, | |
+ {0x261f, 0x263f}, | |
+ {0x2641, 0x2641}, | |
+ {0x2643, 0x265f}, | |
+ {0x2662, 0x2662}, | |
+ {0x2666, 0x2666}, | |
+ {0x266b, 0x266b}, | |
+ {0x266e, 0x266e}, | |
+ {0x2670, 0x269d}, | |
+ {0x26a0, 0x26bd}, | |
+ {0x26c0, 0x26c3}, | |
+ {0x26ce, 0x26ce}, | |
+ {0x26e2, 0x26e2}, | |
+ {0x26e4, 0x26e7}, | |
+ {0x2700, 0x273c}, | |
+ {0x273e, 0x2756}, | |
+ {0x2758, 0x2775}, | |
+ {0x2780, 0x2b54}, | |
+ {0x2b5a, 0x2b73}, | |
+ {0x2b76, 0x2b95}, | |
+ {0x2b98, 0x2bb9}, | |
+ {0x2bbd, 0x2bc8}, | |
+ {0x2bca, 0x2bd1}, | |
+ {0x2c80, 0x2cf3}, | |
+ {0x2cf9, 0x2d25}, | |
+ {0x2d27, 0x2d27}, | |
+ {0x2d2d, 0x2d2d}, | |
+ {0x2d30, 0x2d67}, | |
+ {0x2d6f, 0x2d70}, | |
+ {0x2d80, 0x2d96}, | |
+ {0x2da0, 0x2da6}, | |
+ {0x2da8, 0x2dae}, | |
+ {0x2db0, 0x2db6}, | |
+ {0x2db8, 0x2dbe}, | |
+ {0x2dc0, 0x2dc6}, | |
+ {0x2dc8, 0x2dce}, | |
+ {0x2dd0, 0x2dd6}, | |
+ {0x2dd8, 0x2dde}, | |
+ {0x2de0, 0x2e42}, | |
+ {0x303f, 0x303f}, | |
+ {0x4dc0, 0x4dff}, | |
+ {0xa4d0, 0xa62b}, | |
+ {0xa640, 0xa66e}, | |
+ {0xa670, 0xa69d}, | |
+ {0xa6a0, 0xa6f7}, | |
+ {0xa700, 0xa721}, | |
+ {0xa770, 0xa770}, | |
+ {0xa788, 0xa78a}, | |
+ {0xa7f8, 0xa7f9}, | |
+ {0xa800, 0xa801}, | |
+ {0xa803, 0xa805}, | |
+ {0xa807, 0xa80a}, | |
+ {0xa80c, 0xa826}, | |
+ {0xa828, 0xa82b}, | |
+ {0xa830, 0xa839}, | |
+ {0xa840, 0xa877}, | |
+ {0xa880, 0xa8c3}, | |
+ {0xa8ce, 0xa8d9}, | |
+ {0xa8e0, 0xa8fb}, | |
+ {0xa900, 0xa953}, | |
+ {0xa95f, 0xa95f}, | |
+ {0xa980, 0xa982}, | |
+ {0xa984, 0xa9b2}, | |
+ {0xa9b4, 0xa9bb}, | |
+ {0xa9bd, 0xa9cd}, | |
+ {0xa9cf, 0xa9d9}, | |
+ {0xa9de, 0xa9e4}, | |
+ {0xa9e6, 0xa9fe}, | |
+ {0xaa00, 0xaa36}, | |
+ {0xaa40, 0xaa42}, | |
+ {0xaa44, 0xaa4b}, | |
+ {0xaa50, 0xaa59}, | |
+ {0xaa5c, 0xaa7a}, | |
+ {0xaa7e, 0xaaaf}, | |
+ {0xaab1, 0xaac0}, | |
+ {0xaac2, 0xaac2}, | |
+ {0xaadb, 0xaaea}, | |
+ {0xaaec, 0xaaf4}, | |
+ {0xab01, 0xab06}, | |
+ {0xab09, 0xab0e}, | |
+ {0xab11, 0xab16}, | |
+ {0xab20, 0xab26}, | |
+ {0xab28, 0xab2e}, | |
+ {0xab5b, 0xab5f}, | |
+ {0xabc0, 0xabe4}, | |
+ {0xabe6, 0xabe7}, | |
+ {0xabe9, 0xabeb}, | |
+ {0xabf0, 0xabf9}, | |
+ {0xd7b0, 0xd7c6}, | |
+ {0xd7cb, 0xd7fb}, | |
+ {0xd800, 0xdfff}, | |
+ {0xfb13, 0xfb17}, | |
+ {0xfb1d, 0xfb1d}, | |
+ {0xfb1f, 0xfb36}, | |
+ {0xfb38, 0xfb3c}, | |
+ {0xfb3e, 0xfb3e}, | |
+ {0xfb40, 0xfb41}, | |
+ {0xfb43, 0xfb44}, | |
+ {0xfb46, 0xfbc1}, | |
+ {0xfbd3, 0xfd3f}, | |
+ {0xfd50, 0xfd8f}, | |
+ {0xfd92, 0xfdc7}, | |
+ {0xfdf0, 0xfdfd}, | |
+ {0xfe20, 0xfe2d}, | |
+ {0xfe70, 0xfe74}, | |
+ {0xfe76, 0xfefc}, | |
+ {0xfeff, 0xfeff}, | |
+ {0xfff9, 0xfffc}, | |
+ {0x10000, 0x1000b}, | |
+ {0x1000d, 0x10026}, | |
+ {0x10028, 0x1003a}, | |
+ {0x1003c, 0x1003d}, | |
+ {0x1003f, 0x1004d}, | |
+ {0x10050, 0x1005d}, | |
+ {0x10080, 0x100fa}, | |
+ {0x10100, 0x10102}, | |
+ {0x10107, 0x10133}, | |
+ {0x10137, 0x1018c}, | |
+ {0x10190, 0x1019b}, | |
+ {0x101a0, 0x101a0}, | |
+ {0x101d0, 0x101fc}, | |
+ {0x10280, 0x1029c}, | |
+ {0x102a0, 0x102d0}, | |
+ {0x102e1, 0x102fb}, | |
+ {0x10300, 0x10323}, | |
+ {0x10330, 0x1034a}, | |
+ {0x10350, 0x1037a}, | |
+ {0x10380, 0x1039d}, | |
+ {0x1039f, 0x103c3}, | |
+ {0x103c8, 0x103d5}, | |
+ {0x10400, 0x1049d}, | |
+ {0x104a0, 0x104a9}, | |
+ {0x10500, 0x10527}, | |
+ {0x10530, 0x10563}, | |
+ {0x1056f, 0x1056f}, | |
+ {0x10600, 0x10736}, | |
+ {0x10740, 0x10755}, | |
+ {0x10760, 0x10767}, | |
+ {0x10800, 0x10805}, | |
+ {0x10808, 0x10808}, | |
+ {0x1080a, 0x10835}, | |
+ {0x10837, 0x10838}, | |
+ {0x1083c, 0x1083c}, | |
+ {0x1083f, 0x10855}, | |
+ {0x10857, 0x1089e}, | |
+ {0x108a7, 0x108af}, | |
+ {0x10900, 0x1091b}, | |
+ {0x1091f, 0x10939}, | |
+ {0x1093f, 0x1093f}, | |
+ {0x10980, 0x109b7}, | |
+ {0x109be, 0x109bf}, | |
+ {0x10a00, 0x10a03}, | |
+ {0x10a05, 0x10a06}, | |
+ {0x10a0c, 0x10a13}, | |
+ {0x10a15, 0x10a17}, | |
+ {0x10a19, 0x10a33}, | |
+ {0x10a38, 0x10a3a}, | |
+ {0x10a40, 0x10a47}, | |
+ {0x10a50, 0x10a58}, | |
+ {0x10a60, 0x10a9f}, | |
+ {0x10ac0, 0x10ae6}, | |
+ {0x10aeb, 0x10af6}, | |
+ {0x10b00, 0x10b35}, | |
+ {0x10b39, 0x10b55}, | |
+ {0x10b58, 0x10b72}, | |
+ {0x10b78, 0x10b91}, | |
+ {0x10b99, 0x10b9c}, | |
+ {0x10ba9, 0x10baf}, | |
+ {0x10c00, 0x10c48}, | |
+ {0x10e60, 0x10e7e}, | |
+ {0x11003, 0x1104d}, | |
+ {0x11052, 0x1106f}, | |
+ {0x11080, 0x11081}, | |
+ {0x11083, 0x110c1}, | |
+ {0x110d0, 0x110e8}, | |
+ {0x110f0, 0x110f9}, | |
+ {0x11100, 0x1112b}, | |
+ {0x1112d, 0x11134}, | |
+ {0x11136, 0x11143}, | |
+ {0x11150, 0x11172}, | |
+ {0x11174, 0x11176}, | |
+ {0x11180, 0x11181}, | |
+ {0x11183, 0x111c8}, | |
+ {0x111cd, 0x111cd}, | |
+ {0x111d0, 0x111da}, | |
+ {0x111e1, 0x111f4}, | |
+ {0x11200, 0x11211}, | |
+ {0x11213, 0x11233}, | |
+ {0x11236, 0x1123d}, | |
+ {0x112b0, 0x112de}, | |
+ {0x112e0, 0x112ea}, | |
+ {0x112f0, 0x112f9}, | |
+ {0x11302, 0x11303}, | |
+ {0x11305, 0x1130c}, | |
+ {0x1130f, 0x11310}, | |
+ {0x11313, 0x11328}, | |
+ {0x1132a, 0x11330}, | |
+ {0x11332, 0x11333}, | |
+ {0x11335, 0x11339}, | |
+ {0x1133d, 0x1133f}, | |
+ {0x11341, 0x11344}, | |
+ {0x11347, 0x11348}, | |
+ {0x1134b, 0x1134d}, | |
+ {0x1135d, 0x11363}, | |
+ {0x11366, 0x1136c}, | |
+ {0x11370, 0x11374}, | |
+ {0x11480, 0x114b8}, | |
+ {0x114bb, 0x114c0}, | |
+ {0x114c2, 0x114c7}, | |
+ {0x114d0, 0x114d9}, | |
+ {0x11580, 0x115b5}, | |
+ {0x115b8, 0x115bd}, | |
+ {0x115bf, 0x115c9}, | |
+ {0x11600, 0x1163c}, | |
+ {0x1163f, 0x11644}, | |
+ {0x11650, 0x11659}, | |
+ {0x11680, 0x116aa}, | |
+ {0x116ae, 0x116b5}, | |
+ {0x116c0, 0x116c9}, | |
+ {0x118a0, 0x118f2}, | |
+ {0x118ff, 0x118ff}, | |
+ {0x11ac0, 0x11af8}, | |
+ {0x12000, 0x12398}, | |
+ {0x12400, 0x1246e}, | |
+ {0x12470, 0x12474}, | |
+ {0x13000, 0x1342e}, | |
+ {0x16800, 0x16a38}, | |
+ {0x16a40, 0x16a5e}, | |
+ {0x16a60, 0x16a69}, | |
+ {0x16a6e, 0x16a6f}, | |
+ {0x16ad0, 0x16aed}, | |
+ {0x16af0, 0x16af5}, | |
+ {0x16b00, 0x16b45}, | |
+ {0x16b50, 0x16b59}, | |
+ {0x16b5b, 0x16b61}, | |
+ {0x16b63, 0x16b77}, | |
+ {0x16b7d, 0x16b8f}, | |
+ {0x16f00, 0x16f44}, | |
+ {0x16f50, 0x16f7e}, | |
+ {0x16f8f, 0x16f9f}, | |
+ {0x1bc00, 0x1bc6a}, | |
+ {0x1bc70, 0x1bc7c}, | |
+ {0x1bc80, 0x1bc88}, | |
+ {0x1bc90, 0x1bc99}, | |
+ {0x1bc9c, 0x1bca3}, | |
+ {0x1d000, 0x1d0f5}, | |
+ {0x1d100, 0x1d126}, | |
+ {0x1d129, 0x1d1dd}, | |
+ {0x1d200, 0x1d245}, | |
+ {0x1d300, 0x1d356}, | |
+ {0x1d360, 0x1d371}, | |
+ {0x1d400, 0x1d454}, | |
+ {0x1d456, 0x1d49c}, | |
+ {0x1d49e, 0x1d49f}, | |
+ {0x1d4a2, 0x1d4a2}, | |
+ {0x1d4a5, 0x1d4a6}, | |
+ {0x1d4a9, 0x1d4ac}, | |
+ {0x1d4ae, 0x1d4b9}, | |
+ {0x1d4bb, 0x1d4bb}, | |
+ {0x1d4bd, 0x1d4c3}, | |
+ {0x1d4c5, 0x1d505}, | |
+ {0x1d507, 0x1d50a}, | |
+ {0x1d50d, 0x1d514}, | |
+ {0x1d516, 0x1d51c}, | |
+ {0x1d51e, 0x1d539}, | |
+ {0x1d53b, 0x1d53e}, | |
+ {0x1d540, 0x1d544}, | |
+ {0x1d546, 0x1d546}, | |
+ {0x1d54a, 0x1d550}, | |
+ {0x1d552, 0x1d6a5}, | |
+ {0x1d6a8, 0x1d7cb}, | |
+ {0x1d7ce, 0x1d7ff}, | |
+ {0x1e800, 0x1e8c4}, | |
+ {0x1e8c7, 0x1e8d6}, | |
+ {0x1ee00, 0x1ee03}, | |
+ {0x1ee05, 0x1ee1f}, | |
+ {0x1ee21, 0x1ee22}, | |
+ {0x1ee24, 0x1ee24}, | |
+ {0x1ee27, 0x1ee27}, | |
+ {0x1ee29, 0x1ee32}, | |
+ {0x1ee34, 0x1ee37}, | |
+ {0x1ee39, 0x1ee39}, | |
+ {0x1ee3b, 0x1ee3b}, | |
+ {0x1ee42, 0x1ee42}, | |
+ {0x1ee47, 0x1ee47}, | |
+ {0x1ee49, 0x1ee49}, | |
+ {0x1ee4b, 0x1ee4b}, | |
+ {0x1ee4d, 0x1ee4f}, | |
+ {0x1ee51, 0x1ee52}, | |
+ {0x1ee54, 0x1ee54}, | |
+ {0x1ee57, 0x1ee57}, | |
+ {0x1ee59, 0x1ee59}, | |
+ {0x1ee5b, 0x1ee5b}, | |
+ {0x1ee5d, 0x1ee5d}, | |
+ {0x1ee5f, 0x1ee5f}, | |
+ {0x1ee61, 0x1ee62}, | |
+ {0x1ee64, 0x1ee64}, | |
+ {0x1ee67, 0x1ee6a}, | |
+ {0x1ee6c, 0x1ee72}, | |
+ {0x1ee74, 0x1ee77}, | |
+ {0x1ee79, 0x1ee7c}, | |
+ {0x1ee7e, 0x1ee7e}, | |
+ {0x1ee80, 0x1ee89}, | |
+ {0x1ee8b, 0x1ee9b}, | |
+ {0x1eea1, 0x1eea3}, | |
+ {0x1eea5, 0x1eea9}, | |
+ {0x1eeab, 0x1eebb}, | |
+ {0x1eef0, 0x1eef1}, | |
+ {0x1f000, 0x1f02b}, | |
+ {0x1f030, 0x1f093}, | |
+ {0x1f0a0, 0x1f0ae}, | |
+ {0x1f0b1, 0x1f0bf}, | |
+ {0x1f0c1, 0x1f0cf}, | |
+ {0x1f0d1, 0x1f0f5}, | |
+ {0x1f10b, 0x1f10c}, | |
+ {0x1f12e, 0x1f12e}, | |
+ {0x1f16a, 0x1f16b}, | |
+ {0x1f1e6, 0x1f1ff}, | |
+ {0x1f300, 0x1f32c}, | |
+ {0x1f330, 0x1f37d}, | |
+ {0x1f380, 0x1f3ce}, | |
+ {0x1f3d4, 0x1f3f7}, | |
+ {0x1f400, 0x1f4fe}, | |
+ {0x1f500, 0x1f54a}, | |
+ {0x1f550, 0x1f579}, | |
+ {0x1f57b, 0x1f5a3}, | |
+ {0x1f5a5, 0x1f642}, | |
+ {0x1f645, 0x1f6cf}, | |
+ {0x1f6e0, 0x1f6ec}, | |
+ {0x1f6f0, 0x1f6f3}, | |
+ {0x1f700, 0x1f773}, | |
+ {0x1f780, 0x1f7d4}, | |
+ {0x1f800, 0x1f80b}, | |
+ {0x1f810, 0x1f847}, | |
+ {0x1f850, 0x1f859}, | |
+ {0x1f860, 0x1f887}, | |
+ {0x1f890, 0x1f8ad}, | |
+ {0xe0001, 0xe0001}, | |
+ {0xe0020, 0xe007f} | |
+ }; | |
if (c >= 0x100) | |
{ | |
@@ -1494,7 +2246,11 @@ | |
else if (c >= 0x80 && !vim_isprintc(c)) | |
return 4; /* unprintable, displays <xx> */ | |
- if (c >= 0x80 && *p_ambw == 'd' && intable(ambiguous, sizeof(ambiguous), c)) | |
+ if (c >= 0x80 && (*p_ambw == 'd' || *p_ambw == 'f') && | |
+ intable(ambiguous, sizeof(ambiguous), c)) | |
+ return 2; | |
+ if (c >= 0x80 && (*p_ambw == 'f') && | |
+ intable(neutral, sizeof(neutral), c)) | |
return 2; | |
return 1; | |
diff -r 8cae3b61ce9e src/option.c | |
--- a/src/option.c Mon Dec 08 04:16:45 2014 +0100 | |
+++ b/src/option.c Wed Dec 10 14:28:43 2014 +0900 | |
@@ -2991,7 +2991,7 @@ | |
#define PARAM_COUNT (sizeof(options) / sizeof(struct vimoption)) | |
#ifdef FEAT_MBYTE | |
-static char *(p_ambw_values[]) = {"single", "double", NULL}; | |
+static char *(p_ambw_values[]) = {"single", "double", "fulldouble", NULL}; | |
#endif | |
static char *(p_bg_values[]) = {"light", "dark", NULL}; | |
static char *(p_nf_values[]) = {"octal", "hex", "alpha", NULL}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment