Mercurial > vim
annotate src/mbyte.c @ 33591:288da62613ba v9.0.2040
patch 9.0.2040: trim(): hard to use default mask
Commit: https://github.com/vim/vim/commit/6e6386716f9494ae86027c6d34f657fd03dfec42
Author: Illia Bobyr <illia.bobyr@gmail.com>
Date: Tue Oct 17 11:09:45 2023 +0200
patch 9.0.2040: trim(): hard to use default mask
Problem: trim(): hard to use default mask
Solution: Use default 'mask' when it is v:none
The default 'mask' value is pretty complex, as it includes many
characters. Yet, if one needs to specify the trimming direction, the
third argument, 'trim()' currently requires the 'mask' value to be
provided explicitly.
'v:none' is already used to mean "use the default argument value" in
user defined functions. See |none-function_argument| in help.
closes: #13363
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Illia Bobyr <illia.bobyr@gmail.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 17 Oct 2023 11:15:09 +0200 |
parents | 6d7a054bf2e3 |
children | 1629cc65d78d |
rev | line source |
---|---|
10042
4aead6a9b7a9
commit https://github.com/vim/vim/commit/edf3f97ae2af024708ebb4ac614227327033ca47
Christian Brabandt <cb@256bit.org>
parents:
9495
diff
changeset
|
1 /* vi:set ts=8 sts=4 sw=4 noet: |
7 | 2 * |
3 * VIM - Vi IMproved by Bram Moolenaar | |
4 * Multibyte extensions partly by Sung-Hoon Baek | |
5 * | |
6 * Do ":help uganda" in Vim to read copying and usage conditions. | |
7 * Do ":help credits" in Vim to see a list of people who contributed. | |
8 * See README.txt for an overview of the Vim source code. | |
9 */ | |
10 /* | |
11 * mbyte.c: Code specifically for handling multi-byte characters. | |
12 * | |
13 * The encoding used in the core is set with 'encoding'. When 'encoding' is | |
14 * changed, the following four variables are set (for speed). | |
15 * Currently these types of character encodings are supported: | |
16 * | |
17 * "enc_dbcs" When non-zero it tells the type of double byte character | |
18 * encoding (Chinese, Korean, Japanese, etc.). | |
19 * The cell width on the display is equal to the number of | |
20 * bytes. (exception: DBCS_JPNU with first byte 0x8e) | |
21 * Recognizing the first or second byte is difficult, it | |
22 * requires checking a byte sequence from the start. | |
23 * "enc_utf8" When TRUE use Unicode characters in UTF-8 encoding. | |
24 * The cell width on the display needs to be determined from | |
25 * the character value. | |
26 * Recognizing bytes is easy: 0xxx.xxxx is a single-byte | |
27 * char, 10xx.xxxx is a trailing byte, 11xx.xxxx is a leading | |
28 * byte of a multi-byte character. | |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
29 * To make things complicated, up to six composing characters |
7 | 30 * are allowed. These are drawn on top of the first char. |
31 * For most editing the sequence of bytes with composing | |
32 * characters included is considered to be one character. | |
33 * "enc_unicode" When 2 use 16-bit Unicode characters (or UTF-16). | |
34 * When 4 use 32-but Unicode characters. | |
35 * Internally characters are stored in UTF-8 encoding to | |
36 * avoid NUL bytes. Conversion happens when doing I/O. | |
37 * "enc_utf8" will also be TRUE. | |
38 * | |
39 * "has_mbyte" is set when "enc_dbcs" or "enc_utf8" is non-zero. | |
40 * | |
41 * If none of these is TRUE, 8-bit bytes are used for a character. The | |
42 * encoding isn't currently specified (TODO). | |
43 * | |
44 * 'encoding' specifies the encoding used in the core. This is in registers, | |
45 * text manipulation, buffers, etc. Conversion has to be done when characters | |
46 * in another encoding are received or send: | |
47 * | |
48 * clipboard | |
49 * ^ | |
50 * | (2) | |
51 * V | |
52 * +---------------+ | |
53 * (1) | | (3) | |
54 * keyboard ----->| core |-----> display | |
55 * | | | |
56 * +---------------+ | |
57 * ^ | |
58 * | (4) | |
59 * V | |
60 * file | |
61 * | |
62 * (1) Typed characters arrive in the current locale. Conversion is to be | |
63 * done when 'encoding' is different from 'termencoding'. | |
64 * (2) Text will be made available with the encoding specified with | |
65 * 'encoding'. If this is not sufficient, system-specific conversion | |
66 * might be required. | |
67 * (3) For the GUI the correct font must be selected, no conversion done. | |
68 * Otherwise, conversion is to be done when 'encoding' differs from | |
69 * 'termencoding'. (Different in the GTK+ 2 port -- 'termencoding' | |
70 * is always used for both input and output and must always be set to | |
71 * "utf-8". gui_mch_init() does this automatically.) | |
72 * (4) The encoding of the file is specified with 'fileencoding'. Conversion | |
73 * is to be done when it's different from 'encoding'. | |
74 * | |
75 * The viminfo file is a special case: Only text is converted, not file names. | |
76 * Vim scripts may contain an ":encoding" command. This has an effect for | |
77 * some commands, like ":menutrans" | |
78 */ | |
79 | |
80 #include "vim.h" | |
81 | |
82 #ifdef WIN32UNIX | |
83 # ifndef WIN32_LEAN_AND_MEAN | |
84 # define WIN32_LEAN_AND_MEAN | |
85 # endif | |
5602 | 86 # if defined(FEAT_GUI) || defined(FEAT_XCLIPBOARD) |
28423
3fe127d8ede6
patch 8.2.4736: build problem for Cygwin with Motif
Bram Moolenaar <Bram@vim.org>
parents:
27827
diff
changeset
|
87 # ifdef __CYGWIN__ |
3fe127d8ede6
patch 8.2.4736: build problem for Cygwin with Motif
Bram Moolenaar <Bram@vim.org>
parents:
27827
diff
changeset
|
88 // ControlMask from <X11/X.h> (included in "vim.h") is conflicting with |
3fe127d8ede6
patch 8.2.4736: build problem for Cygwin with Motif
Bram Moolenaar <Bram@vim.org>
parents:
27827
diff
changeset
|
89 // <w32api/windows.h> (included in <X11/Xwindows.h>). |
3fe127d8ede6
patch 8.2.4736: build problem for Cygwin with Motif
Bram Moolenaar <Bram@vim.org>
parents:
27827
diff
changeset
|
90 # undef ControlMask |
3fe127d8ede6
patch 8.2.4736: build problem for Cygwin with Motif
Bram Moolenaar <Bram@vim.org>
parents:
27827
diff
changeset
|
91 # endif |
5602 | 92 # include <X11/Xwindows.h> |
93 # define WINBYTE wBYTE | |
94 # else | |
95 # include <windows.h> | |
96 # define WINBYTE BYTE | |
97 # endif | |
7 | 98 # ifdef WIN32 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
99 # undef WIN32 // Some windows.h define WIN32, we don't want that here. |
7 | 100 # endif |
5602 | 101 #else |
102 # define WINBYTE BYTE | |
7 | 103 #endif |
104 | |
15868
7fad90423bd2
patch 8.1.0941: macros for MS-Windows are inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
15636
diff
changeset
|
105 #if (defined(MSWIN) || defined(WIN32UNIX)) && !defined(__MINGW32__) |
7 | 106 # include <winnls.h> |
107 #endif | |
108 | |
109 #ifdef FEAT_GUI_X11 | |
110 # include <X11/Intrinsic.h> | |
111 #endif | |
112 #ifdef X_LOCALE | |
12716
351cf7c67bbe
patch 8.0.1236: Mac features are confusing
Christian Brabandt <cb@256bit.org>
parents:
12650
diff
changeset
|
113 # include <X11/Xlocale.h> |
351cf7c67bbe
patch 8.0.1236: Mac features are confusing
Christian Brabandt <cb@256bit.org>
parents:
12650
diff
changeset
|
114 # if !defined(HAVE_MBLEN) && !defined(mblen) |
351cf7c67bbe
patch 8.0.1236: Mac features are confusing
Christian Brabandt <cb@256bit.org>
parents:
12650
diff
changeset
|
115 # define mblen _Xmblen |
351cf7c67bbe
patch 8.0.1236: Mac features are confusing
Christian Brabandt <cb@256bit.org>
parents:
12650
diff
changeset
|
116 # endif |
7 | 117 #endif |
118 | |
119 #ifdef HAVE_WCHAR_H | |
120 # include <wchar.h> | |
121 #endif | |
122 | |
123 #if 0 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
124 // This has been disabled, because several people reported problems with the |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
125 // wcwidth() and iswprint() library functions, esp. for Hebrew. |
7 | 126 # ifdef __STDC_ISO_10646__ |
127 # define USE_WCHAR_FUNCTIONS | |
128 # endif | |
129 #endif | |
130 | |
7803
37c929c4a073
commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents:
7734
diff
changeset
|
131 static int dbcs_char2len(int c); |
37c929c4a073
commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents:
7734
diff
changeset
|
132 static int dbcs_char2bytes(int c, char_u *buf); |
37c929c4a073
commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents:
7734
diff
changeset
|
133 static int dbcs_ptr2len(char_u *p); |
37c929c4a073
commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents:
7734
diff
changeset
|
134 static int dbcs_ptr2len_len(char_u *p, int size); |
37c929c4a073
commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents:
7734
diff
changeset
|
135 static int utf_ptr2cells_len(char_u *p, int size); |
37c929c4a073
commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents:
7734
diff
changeset
|
136 static int dbcs_char2cells(int c); |
37c929c4a073
commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents:
7734
diff
changeset
|
137 static int dbcs_ptr2cells_len(char_u *p, int size); |
37c929c4a073
commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents:
7734
diff
changeset
|
138 static int dbcs_ptr2char(char_u *p); |
18051
d1e77015f60b
patch 8.1.2021: some global functions can be local to the file
Bram Moolenaar <Bram@vim.org>
parents:
18014
diff
changeset
|
139 static int dbcs_head_off(char_u *base, char_u *p); |
21973
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
140 #ifdef FEAT_EVAL |
21971
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
141 static int cw_value(int c); |
21973
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
142 #endif |
7 | 143 |
2015 | 144 /* |
145 * Lookup table to quickly get the length in bytes of a UTF-8 character from | |
146 * the first byte of a UTF-8 string. | |
147 * Bytes which are illegal when used as the first byte have a 1. | |
148 * The NUL byte has length 1. | |
149 */ | |
7 | 150 static char utf8len_tab[256] = |
151 { | |
152 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
153 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
154 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
155 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
2015 | 156 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, |
157 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
7 | 158 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, |
159 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,6,6,1,1, | |
160 }; | |
161 | |
162 /* | |
2015 | 163 * Like utf8len_tab above, but using a zero for illegal lead bytes. |
164 */ | |
165 static char utf8len_tab_zero[256] = | |
166 { | |
167 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
168 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
169 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
170 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
171 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, | |
172 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, | |
173 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, | |
174 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,6,6,0,0, | |
175 }; | |
176 | |
15597
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
177 |
7 | 178 /* |
179 * Canonical encoding names and their properties. | |
180 * "iso-8859-n" is handled by enc_canonize() directly. | |
181 */ | |
182 static struct | |
183 { char *name; int prop; int codepage;} | |
184 enc_canon_table[] = | |
185 { | |
186 #define IDX_LATIN_1 0 | |
187 {"latin1", ENC_8BIT + ENC_LATIN1, 1252}, | |
188 #define IDX_ISO_2 1 | |
189 {"iso-8859-2", ENC_8BIT, 0}, | |
190 #define IDX_ISO_3 2 | |
191 {"iso-8859-3", ENC_8BIT, 0}, | |
192 #define IDX_ISO_4 3 | |
193 {"iso-8859-4", ENC_8BIT, 0}, | |
194 #define IDX_ISO_5 4 | |
195 {"iso-8859-5", ENC_8BIT, 0}, | |
196 #define IDX_ISO_6 5 | |
197 {"iso-8859-6", ENC_8BIT, 0}, | |
198 #define IDX_ISO_7 6 | |
199 {"iso-8859-7", ENC_8BIT, 0}, | |
407 | 200 #define IDX_ISO_8 7 |
7 | 201 {"iso-8859-8", ENC_8BIT, 0}, |
407 | 202 #define IDX_ISO_9 8 |
7 | 203 {"iso-8859-9", ENC_8BIT, 0}, |
407 | 204 #define IDX_ISO_10 9 |
7 | 205 {"iso-8859-10", ENC_8BIT, 0}, |
407 | 206 #define IDX_ISO_11 10 |
7 | 207 {"iso-8859-11", ENC_8BIT, 0}, |
407 | 208 #define IDX_ISO_13 11 |
7 | 209 {"iso-8859-13", ENC_8BIT, 0}, |
407 | 210 #define IDX_ISO_14 12 |
7 | 211 {"iso-8859-14", ENC_8BIT, 0}, |
407 | 212 #define IDX_ISO_15 13 |
26 | 213 {"iso-8859-15", ENC_8BIT + ENC_LATIN9, 0}, |
407 | 214 #define IDX_KOI8_R 14 |
7 | 215 {"koi8-r", ENC_8BIT, 0}, |
407 | 216 #define IDX_KOI8_U 15 |
7 | 217 {"koi8-u", ENC_8BIT, 0}, |
407 | 218 #define IDX_UTF8 16 |
7 | 219 {"utf-8", ENC_UNICODE, 0}, |
407 | 220 #define IDX_UCS2 17 |
7 | 221 {"ucs-2", ENC_UNICODE + ENC_ENDIAN_B + ENC_2BYTE, 0}, |
407 | 222 #define IDX_UCS2LE 18 |
7 | 223 {"ucs-2le", ENC_UNICODE + ENC_ENDIAN_L + ENC_2BYTE, 0}, |
407 | 224 #define IDX_UTF16 19 |
7 | 225 {"utf-16", ENC_UNICODE + ENC_ENDIAN_B + ENC_2WORD, 0}, |
407 | 226 #define IDX_UTF16LE 20 |
7 | 227 {"utf-16le", ENC_UNICODE + ENC_ENDIAN_L + ENC_2WORD, 0}, |
407 | 228 #define IDX_UCS4 21 |
7 | 229 {"ucs-4", ENC_UNICODE + ENC_ENDIAN_B + ENC_4BYTE, 0}, |
407 | 230 #define IDX_UCS4LE 22 |
7 | 231 {"ucs-4le", ENC_UNICODE + ENC_ENDIAN_L + ENC_4BYTE, 0}, |
407 | 232 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
233 // For debugging DBCS encoding on Unix. |
407 | 234 #define IDX_DEBUG 23 |
7 | 235 {"debug", ENC_DBCS, DBCS_DEBUG}, |
407 | 236 #define IDX_EUC_JP 24 |
7 | 237 {"euc-jp", ENC_DBCS, DBCS_JPNU}, |
407 | 238 #define IDX_SJIS 25 |
7 | 239 {"sjis", ENC_DBCS, DBCS_JPN}, |
407 | 240 #define IDX_EUC_KR 26 |
7 | 241 {"euc-kr", ENC_DBCS, DBCS_KORU}, |
407 | 242 #define IDX_EUC_CN 27 |
7 | 243 {"euc-cn", ENC_DBCS, DBCS_CHSU}, |
407 | 244 #define IDX_EUC_TW 28 |
7 | 245 {"euc-tw", ENC_DBCS, DBCS_CHTU}, |
407 | 246 #define IDX_BIG5 29 |
7 | 247 {"big5", ENC_DBCS, DBCS_CHT}, |
407 | 248 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
249 // MS-DOS and MS-Windows codepages are included here, so that they can be |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
250 // used on Unix too. Most of them are similar to ISO-8859 encodings, but |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
251 // not exactly the same. |
407 | 252 #define IDX_CP437 30 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
253 {"cp437", ENC_8BIT, 437}, // like iso-8859-1 |
407 | 254 #define IDX_CP737 31 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
255 {"cp737", ENC_8BIT, 737}, // like iso-8859-7 |
407 | 256 #define IDX_CP775 32 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
257 {"cp775", ENC_8BIT, 775}, // Baltic |
407 | 258 #define IDX_CP850 33 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
259 {"cp850", ENC_8BIT, 850}, // like iso-8859-4 |
407 | 260 #define IDX_CP852 34 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
261 {"cp852", ENC_8BIT, 852}, // like iso-8859-1 |
407 | 262 #define IDX_CP855 35 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
263 {"cp855", ENC_8BIT, 855}, // like iso-8859-2 |
407 | 264 #define IDX_CP857 36 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
265 {"cp857", ENC_8BIT, 857}, // like iso-8859-5 |
407 | 266 #define IDX_CP860 37 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
267 {"cp860", ENC_8BIT, 860}, // like iso-8859-9 |
407 | 268 #define IDX_CP861 38 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
269 {"cp861", ENC_8BIT, 861}, // like iso-8859-1 |
407 | 270 #define IDX_CP862 39 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
271 {"cp862", ENC_8BIT, 862}, // like iso-8859-1 |
407 | 272 #define IDX_CP863 40 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
273 {"cp863", ENC_8BIT, 863}, // like iso-8859-8 |
407 | 274 #define IDX_CP865 41 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
275 {"cp865", ENC_8BIT, 865}, // like iso-8859-1 |
407 | 276 #define IDX_CP866 42 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
277 {"cp866", ENC_8BIT, 866}, // like iso-8859-5 |
407 | 278 #define IDX_CP869 43 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
279 {"cp869", ENC_8BIT, 869}, // like iso-8859-7 |
407 | 280 #define IDX_CP874 44 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
281 {"cp874", ENC_8BIT, 874}, // Thai |
407 | 282 #define IDX_CP932 45 |
283 {"cp932", ENC_DBCS, DBCS_JPN}, | |
284 #define IDX_CP936 46 | |
285 {"cp936", ENC_DBCS, DBCS_CHS}, | |
286 #define IDX_CP949 47 | |
287 {"cp949", ENC_DBCS, DBCS_KOR}, | |
288 #define IDX_CP950 48 | |
289 {"cp950", ENC_DBCS, DBCS_CHT}, | |
290 #define IDX_CP1250 49 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
291 {"cp1250", ENC_8BIT, 1250}, // Czech, Polish, etc. |
407 | 292 #define IDX_CP1251 50 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
293 {"cp1251", ENC_8BIT, 1251}, // Cyrillic |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
294 // cp1252 is considered to be equal to latin1 |
407 | 295 #define IDX_CP1253 51 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
296 {"cp1253", ENC_8BIT, 1253}, // Greek |
407 | 297 #define IDX_CP1254 52 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
298 {"cp1254", ENC_8BIT, 1254}, // Turkish |
407 | 299 #define IDX_CP1255 53 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
300 {"cp1255", ENC_8BIT, 1255}, // Hebrew |
407 | 301 #define IDX_CP1256 54 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
302 {"cp1256", ENC_8BIT, 1256}, // Arabic |
407 | 303 #define IDX_CP1257 55 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
304 {"cp1257", ENC_8BIT, 1257}, // Baltic |
407 | 305 #define IDX_CP1258 56 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
306 {"cp1258", ENC_8BIT, 1258}, // Vietnamese |
407 | 307 |
308 #define IDX_MACROMAN 57 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
309 {"macroman", ENC_8BIT + ENC_MACROMAN, 0}, // Mac OS |
890 | 310 #define IDX_DECMCS 58 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
311 {"dec-mcs", ENC_8BIT, 0}, // DEC MCS |
890 | 312 #define IDX_HPROMAN8 59 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
313 {"hp-roman8", ENC_8BIT, 0}, // HP Roman8 |
890 | 314 #define IDX_COUNT 60 |
7 | 315 }; |
316 | |
317 /* | |
318 * Aliases for encoding names. | |
319 */ | |
320 static struct | |
321 { char *name; int canon;} | |
322 enc_alias_table[] = | |
323 { | |
324 {"ansi", IDX_LATIN_1}, | |
325 {"iso-8859-1", IDX_LATIN_1}, | |
27827
0a0ad6453e67
patch 8.2.4439: accepting "iso8859" 'encoding' as "iso-8859-"
Bram Moolenaar <Bram@vim.org>
parents:
26917
diff
changeset
|
326 {"iso-8859", IDX_LATIN_1}, |
7 | 327 {"latin2", IDX_ISO_2}, |
328 {"latin3", IDX_ISO_3}, | |
329 {"latin4", IDX_ISO_4}, | |
330 {"cyrillic", IDX_ISO_5}, | |
331 {"arabic", IDX_ISO_6}, | |
332 {"greek", IDX_ISO_7}, | |
15868
7fad90423bd2
patch 8.1.0941: macros for MS-Windows are inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
15636
diff
changeset
|
333 #ifdef MSWIN |
7 | 334 {"hebrew", IDX_CP1255}, |
335 #else | |
336 {"hebrew", IDX_ISO_8}, | |
337 #endif | |
338 {"latin5", IDX_ISO_9}, | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
339 {"turkish", IDX_ISO_9}, // ? |
7 | 340 {"latin6", IDX_ISO_10}, |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
341 {"nordic", IDX_ISO_10}, // ? |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
342 {"thai", IDX_ISO_11}, // ? |
7 | 343 {"latin7", IDX_ISO_13}, |
344 {"latin8", IDX_ISO_14}, | |
345 {"latin9", IDX_ISO_15}, | |
346 {"utf8", IDX_UTF8}, | |
347 {"unicode", IDX_UCS2}, | |
348 {"ucs2", IDX_UCS2}, | |
349 {"ucs2be", IDX_UCS2}, | |
350 {"ucs-2be", IDX_UCS2}, | |
351 {"ucs2le", IDX_UCS2LE}, | |
352 {"utf16", IDX_UTF16}, | |
353 {"utf16be", IDX_UTF16}, | |
354 {"utf-16be", IDX_UTF16}, | |
355 {"utf16le", IDX_UTF16LE}, | |
356 {"ucs4", IDX_UCS4}, | |
357 {"ucs4be", IDX_UCS4}, | |
358 {"ucs-4be", IDX_UCS4}, | |
359 {"ucs4le", IDX_UCS4LE}, | |
1540 | 360 {"utf32", IDX_UCS4}, |
361 {"utf-32", IDX_UCS4}, | |
362 {"utf32be", IDX_UCS4}, | |
363 {"utf-32be", IDX_UCS4}, | |
364 {"utf32le", IDX_UCS4LE}, | |
365 {"utf-32le", IDX_UCS4LE}, | |
7 | 366 {"932", IDX_CP932}, |
367 {"949", IDX_CP949}, | |
368 {"936", IDX_CP936}, | |
932 | 369 {"gbk", IDX_CP936}, |
7 | 370 {"950", IDX_CP950}, |
371 {"eucjp", IDX_EUC_JP}, | |
372 {"unix-jis", IDX_EUC_JP}, | |
373 {"ujis", IDX_EUC_JP}, | |
374 {"shift-jis", IDX_SJIS}, | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
375 {"pck", IDX_SJIS}, // Sun: PCK |
7 | 376 {"euckr", IDX_EUC_KR}, |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
377 {"5601", IDX_EUC_KR}, // Sun: KS C 5601 |
7 | 378 {"euccn", IDX_EUC_CN}, |
379 {"gb2312", IDX_EUC_CN}, | |
380 {"euctw", IDX_EUC_TW}, | |
15868
7fad90423bd2
patch 8.1.0941: macros for MS-Windows are inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
15636
diff
changeset
|
381 #if defined(MSWIN) || defined(WIN32UNIX) || defined(MACOS_X) |
7 | 382 {"japan", IDX_CP932}, |
383 {"korea", IDX_CP949}, | |
384 {"prc", IDX_CP936}, | |
385 {"chinese", IDX_CP936}, | |
386 {"taiwan", IDX_CP950}, | |
387 {"big5", IDX_CP950}, | |
388 #else | |
389 {"japan", IDX_EUC_JP}, | |
390 {"korea", IDX_EUC_KR}, | |
391 {"prc", IDX_EUC_CN}, | |
392 {"chinese", IDX_EUC_CN}, | |
393 {"taiwan", IDX_EUC_TW}, | |
394 {"cp950", IDX_BIG5}, | |
395 {"950", IDX_BIG5}, | |
396 #endif | |
397 {"mac", IDX_MACROMAN}, | |
890 | 398 {"mac-roman", IDX_MACROMAN}, |
7 | 399 {NULL, 0} |
400 }; | |
401 | |
402 #ifndef CP_UTF8 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
403 # define CP_UTF8 65001 // magic number from winnls.h |
7 | 404 #endif |
405 | |
406 /* | |
407 * Find encoding "name" in the list of canonical encoding names. | |
408 * Returns -1 if not found. | |
409 */ | |
410 static int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
411 enc_canon_search(char_u *name) |
7 | 412 { |
413 int i; | |
414 | |
415 for (i = 0; i < IDX_COUNT; ++i) | |
416 if (STRCMP(name, enc_canon_table[i].name) == 0) | |
417 return i; | |
418 return -1; | |
419 } | |
420 | |
421 | |
422 /* | |
423 * Find canonical encoding "name" in the list and return its properties. | |
424 * Returns 0 if not found. | |
425 */ | |
426 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
427 enc_canon_props(char_u *name) |
7 | 428 { |
429 int i; | |
430 | |
431 i = enc_canon_search(name); | |
432 if (i >= 0) | |
433 return enc_canon_table[i].prop; | |
15868
7fad90423bd2
patch 8.1.0941: macros for MS-Windows are inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
15636
diff
changeset
|
434 #ifdef MSWIN |
7 | 435 if (name[0] == 'c' && name[1] == 'p' && VIM_ISDIGIT(name[2])) |
436 { | |
437 CPINFO cpinfo; | |
438 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
439 // Get info on this codepage to find out what it is. |
8080
b6cb94ad97a4
commit https://github.com/vim/vim/commit/6aa2cd4be287f35f95f35c2cec6d5a24f53c4d3c
Christian Brabandt <cb@256bit.org>
parents:
7827
diff
changeset
|
440 if (GetCPInfo(atoi((char *)name + 2), &cpinfo) != 0) |
7 | 441 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
442 if (cpinfo.MaxCharSize == 1) // some single-byte encoding |
7 | 443 return ENC_8BIT; |
444 if (cpinfo.MaxCharSize == 2 | |
445 && (cpinfo.LeadByte[0] != 0 || cpinfo.LeadByte[1] != 0)) | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
446 // must be a DBCS encoding |
7 | 447 return ENC_DBCS; |
448 } | |
449 return 0; | |
450 } | |
451 #endif | |
452 if (STRNCMP(name, "2byte-", 6) == 0) | |
453 return ENC_DBCS; | |
454 if (STRNCMP(name, "8bit-", 5) == 0 || STRNCMP(name, "iso-8859-", 9) == 0) | |
455 return ENC_8BIT; | |
456 return 0; | |
457 } | |
458 | |
459 /* | |
460 * Set up for using multi-byte characters. | |
461 * Called in three cases: | |
462 * - by main() to initialize (p_enc == NULL) | |
463 * - by set_init_1() after 'encoding' was set to its default. | |
464 * - by do_set() when 'encoding' has been set. | |
465 * p_enc must have been passed through enc_canonize() already. | |
466 * Sets the "enc_unicode", "enc_utf8", "enc_dbcs" and "has_mbyte" flags. | |
467 * Fills mb_bytelen_tab[] and returns NULL when there are no problems. | |
468 * When there is something wrong: Returns an error message and doesn't change | |
469 * anything. | |
470 */ | |
15470
55ccc2d353bd
patch 8.1.0743: giving error messages is not flexible
Bram Moolenaar <Bram@vim.org>
parents:
14862
diff
changeset
|
471 char * |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
472 mb_init(void) |
7 | 473 { |
474 int i; | |
475 int idx; | |
476 int n; | |
477 int enc_dbcs_new = 0; | |
15868
7fad90423bd2
patch 8.1.0941: macros for MS-Windows are inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
15636
diff
changeset
|
478 #if defined(USE_ICONV) && !defined(MSWIN) && !defined(WIN32UNIX) \ |
12716
351cf7c67bbe
patch 8.0.1236: Mac features are confusing
Christian Brabandt <cb@256bit.org>
parents:
12650
diff
changeset
|
479 && !defined(MACOS_CONVERT) |
7 | 480 # define LEN_FROM_CONV |
481 vimconv_T vimconv; | |
482 char_u *p; | |
483 #endif | |
484 | |
485 if (p_enc == NULL) | |
486 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
487 // Just starting up: set the whole table to one's. |
7 | 488 for (i = 0; i < 256; ++i) |
489 mb_bytelen_tab[i] = 1; | |
490 input_conv.vc_type = CONV_NONE; | |
491 input_conv.vc_factor = 1; | |
492 output_conv.vc_type = CONV_NONE; | |
493 return NULL; | |
494 } | |
495 | |
15868
7fad90423bd2
patch 8.1.0941: macros for MS-Windows are inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
15636
diff
changeset
|
496 #ifdef MSWIN |
7 | 497 if (p_enc[0] == 'c' && p_enc[1] == 'p' && VIM_ISDIGIT(p_enc[2])) |
498 { | |
499 CPINFO cpinfo; | |
500 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
501 // Get info on this codepage to find out what it is. |
8080
b6cb94ad97a4
commit https://github.com/vim/vim/commit/6aa2cd4be287f35f95f35c2cec6d5a24f53c4d3c
Christian Brabandt <cb@256bit.org>
parents:
7827
diff
changeset
|
502 if (GetCPInfo(atoi((char *)p_enc + 2), &cpinfo) != 0) |
7 | 503 { |
504 if (cpinfo.MaxCharSize == 1) | |
505 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
506 // some single-byte encoding |
7 | 507 enc_unicode = 0; |
508 enc_utf8 = FALSE; | |
509 } | |
510 else if (cpinfo.MaxCharSize == 2 | |
511 && (cpinfo.LeadByte[0] != 0 || cpinfo.LeadByte[1] != 0)) | |
512 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
513 // must be a DBCS encoding, check below |
8080
b6cb94ad97a4
commit https://github.com/vim/vim/commit/6aa2cd4be287f35f95f35c2cec6d5a24f53c4d3c
Christian Brabandt <cb@256bit.org>
parents:
7827
diff
changeset
|
514 enc_dbcs_new = atoi((char *)p_enc + 2); |
7 | 515 } |
516 else | |
517 goto codepage_invalid; | |
518 } | |
519 else if (GetLastError() == ERROR_INVALID_PARAMETER) | |
520 { | |
521 codepage_invalid: | |
26917
d91aea2a612c
patch 8.2.3987: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents:
26877
diff
changeset
|
522 return N_(e_not_valid_codepage); |
7 | 523 } |
524 } | |
525 #endif | |
526 else if (STRNCMP(p_enc, "8bit-", 5) == 0 | |
527 || STRNCMP(p_enc, "iso-8859-", 9) == 0) | |
528 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
529 // Accept any "8bit-" or "iso-8859-" name. |
7 | 530 enc_unicode = 0; |
531 enc_utf8 = FALSE; | |
532 } | |
533 else if (STRNCMP(p_enc, "2byte-", 6) == 0) | |
534 { | |
15868
7fad90423bd2
patch 8.1.0941: macros for MS-Windows are inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
15636
diff
changeset
|
535 #ifdef MSWIN |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
536 // Windows: accept only valid codepage numbers, check below. |
7 | 537 if (p_enc[6] != 'c' || p_enc[7] != 'p' |
8080
b6cb94ad97a4
commit https://github.com/vim/vim/commit/6aa2cd4be287f35f95f35c2cec6d5a24f53c4d3c
Christian Brabandt <cb@256bit.org>
parents:
7827
diff
changeset
|
538 || (enc_dbcs_new = atoi((char *)p_enc + 8)) == 0) |
26865
bce848ec8b1b
patch 8.2.3961: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents:
26592
diff
changeset
|
539 return e_invalid_argument; |
7 | 540 #else |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
541 // Unix: accept any "2byte-" name, assume current locale. |
7 | 542 enc_dbcs_new = DBCS_2BYTE; |
543 #endif | |
544 } | |
545 else if ((idx = enc_canon_search(p_enc)) >= 0) | |
546 { | |
547 i = enc_canon_table[idx].prop; | |
548 if (i & ENC_UNICODE) | |
549 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
550 // Unicode |
7 | 551 enc_utf8 = TRUE; |
552 if (i & (ENC_2BYTE | ENC_2WORD)) | |
553 enc_unicode = 2; | |
554 else if (i & ENC_4BYTE) | |
555 enc_unicode = 4; | |
556 else | |
557 enc_unicode = 0; | |
558 } | |
559 else if (i & ENC_DBCS) | |
560 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
561 // 2byte, handle below |
7 | 562 enc_dbcs_new = enc_canon_table[idx].codepage; |
563 } | |
564 else | |
565 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
566 // Must be 8-bit. |
7 | 567 enc_unicode = 0; |
568 enc_utf8 = FALSE; | |
569 } | |
570 } | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
571 else // Don't know what encoding this is, reject it. |
26865
bce848ec8b1b
patch 8.2.3961: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents:
26592
diff
changeset
|
572 return e_invalid_argument; |
7 | 573 |
574 if (enc_dbcs_new != 0) | |
575 { | |
15868
7fad90423bd2
patch 8.1.0941: macros for MS-Windows are inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
15636
diff
changeset
|
576 #ifdef MSWIN |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
577 // Check if the DBCS code page is OK. |
7 | 578 if (!IsValidCodePage(enc_dbcs_new)) |
579 goto codepage_invalid; | |
580 #endif | |
581 enc_unicode = 0; | |
582 enc_utf8 = FALSE; | |
583 } | |
584 enc_dbcs = enc_dbcs_new; | |
585 has_mbyte = (enc_dbcs != 0 || enc_utf8); | |
586 | |
15868
7fad90423bd2
patch 8.1.0941: macros for MS-Windows are inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
15636
diff
changeset
|
587 #if defined(MSWIN) || defined(FEAT_CYGWIN_WIN32_CLIPBOARD) |
7 | 588 enc_codepage = encname2codepage(p_enc); |
26 | 589 enc_latin9 = (STRCMP(p_enc, "iso-8859-15") == 0); |
7 | 590 #endif |
591 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
592 // Detect an encoding that uses latin1 characters. |
492 | 593 enc_latin1like = (enc_utf8 || STRCMP(p_enc, "latin1") == 0 |
594 || STRCMP(p_enc, "iso-8859-15") == 0); | |
595 | |
7 | 596 /* |
597 * Set the function pointers. | |
598 */ | |
599 if (enc_utf8) | |
600 { | |
474 | 601 mb_ptr2len = utfc_ptr2len; |
1903 | 602 mb_ptr2len_len = utfc_ptr2len_len; |
7 | 603 mb_char2len = utf_char2len; |
604 mb_char2bytes = utf_char2bytes; | |
605 mb_ptr2cells = utf_ptr2cells; | |
1903 | 606 mb_ptr2cells_len = utf_ptr2cells_len; |
7 | 607 mb_char2cells = utf_char2cells; |
608 mb_off2cells = utf_off2cells; | |
609 mb_ptr2char = utf_ptr2char; | |
610 mb_head_off = utf_head_off; | |
611 } | |
612 else if (enc_dbcs != 0) | |
613 { | |
474 | 614 mb_ptr2len = dbcs_ptr2len; |
1903 | 615 mb_ptr2len_len = dbcs_ptr2len_len; |
7 | 616 mb_char2len = dbcs_char2len; |
617 mb_char2bytes = dbcs_char2bytes; | |
618 mb_ptr2cells = dbcs_ptr2cells; | |
1903 | 619 mb_ptr2cells_len = dbcs_ptr2cells_len; |
7 | 620 mb_char2cells = dbcs_char2cells; |
621 mb_off2cells = dbcs_off2cells; | |
622 mb_ptr2char = dbcs_ptr2char; | |
623 mb_head_off = dbcs_head_off; | |
624 } | |
625 else | |
626 { | |
474 | 627 mb_ptr2len = latin_ptr2len; |
1903 | 628 mb_ptr2len_len = latin_ptr2len_len; |
7 | 629 mb_char2len = latin_char2len; |
630 mb_char2bytes = latin_char2bytes; | |
631 mb_ptr2cells = latin_ptr2cells; | |
1903 | 632 mb_ptr2cells_len = latin_ptr2cells_len; |
7 | 633 mb_char2cells = latin_char2cells; |
634 mb_off2cells = latin_off2cells; | |
635 mb_ptr2char = latin_ptr2char; | |
636 mb_head_off = latin_head_off; | |
637 } | |
638 | |
639 /* | |
640 * Fill the mb_bytelen_tab[] for MB_BYTE2LEN(). | |
641 */ | |
642 #ifdef LEN_FROM_CONV | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
643 // When 'encoding' is different from the current locale mblen() won't |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
644 // work. Use conversion to "utf-8" instead. |
7 | 645 vimconv.vc_type = CONV_NONE; |
646 if (enc_dbcs) | |
647 { | |
648 p = enc_locale(); | |
649 if (p == NULL || STRCMP(p, p_enc) != 0) | |
650 { | |
651 convert_setup(&vimconv, p_enc, (char_u *)"utf-8"); | |
652 vimconv.vc_fail = TRUE; | |
653 } | |
654 vim_free(p); | |
655 } | |
656 #endif | |
657 | |
658 for (i = 0; i < 256; ++i) | |
659 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
660 // Our own function to reliably check the length of UTF-8 characters, |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
661 // independent of mblen(). |
7 | 662 if (enc_utf8) |
663 n = utf8len_tab[i]; | |
664 else if (enc_dbcs == 0) | |
665 n = 1; | |
666 else | |
667 { | |
15868
7fad90423bd2
patch 8.1.0941: macros for MS-Windows are inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
15636
diff
changeset
|
668 #if defined(MSWIN) || defined(WIN32UNIX) |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
669 // enc_dbcs is set by setting 'fileencoding'. It becomes a Windows |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
670 // CodePage identifier, which we can pass directly in to Windows |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
671 // API |
5602 | 672 n = IsDBCSLeadByteEx(enc_dbcs, (WINBYTE)i) ? 2 : 1; |
7 | 673 #else |
12716
351cf7c67bbe
patch 8.0.1236: Mac features are confusing
Christian Brabandt <cb@256bit.org>
parents:
12650
diff
changeset
|
674 # if defined(__amigaos4__) || defined(__ANDROID__) || \ |
351cf7c67bbe
patch 8.0.1236: Mac features are confusing
Christian Brabandt <cb@256bit.org>
parents:
12650
diff
changeset
|
675 !(defined(HAVE_MBLEN) || defined(X_LOCALE)) |
7 | 676 /* |
677 * if mblen() is not available, character which MSB is turned on | |
678 * are treated as leading byte character. (note : This assumption | |
679 * is not always true.) | |
680 */ | |
681 n = (i & 0x80) ? 2 : 1; | |
682 # else | |
3549 | 683 char buf[MB_MAXBYTES + 1]; |
12716
351cf7c67bbe
patch 8.0.1236: Mac features are confusing
Christian Brabandt <cb@256bit.org>
parents:
12650
diff
changeset
|
684 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
685 if (i == NUL) // just in case mblen() can't handle "" |
7 | 686 n = 1; |
687 else | |
688 { | |
689 buf[0] = i; | |
690 buf[1] = 0; | |
12716
351cf7c67bbe
patch 8.0.1236: Mac features are confusing
Christian Brabandt <cb@256bit.org>
parents:
12650
diff
changeset
|
691 # ifdef LEN_FROM_CONV |
7 | 692 if (vimconv.vc_type != CONV_NONE) |
693 { | |
694 /* | |
695 * string_convert() should fail when converting the first | |
696 * byte of a double-byte character. | |
697 */ | |
698 p = string_convert(&vimconv, (char_u *)buf, NULL); | |
699 if (p != NULL) | |
700 { | |
701 vim_free(p); | |
702 n = 1; | |
703 } | |
704 else | |
705 n = 2; | |
706 } | |
707 else | |
12716
351cf7c67bbe
patch 8.0.1236: Mac features are confusing
Christian Brabandt <cb@256bit.org>
parents:
12650
diff
changeset
|
708 # endif |
7 | 709 { |
710 /* | |
711 * mblen() should return -1 for invalid (means the leading | |
712 * multibyte) character. However there are some platforms | |
713 * where mblen() returns 0 for invalid character. | |
714 * Therefore, following condition includes 0. | |
715 */ | |
14730
193471015e1a
patch 8.1.0377: xdiff doesn't use the Vim memory allocation functions
Christian Brabandt <cb@256bit.org>
parents:
14712
diff
changeset
|
716 vim_ignored = mblen(NULL, 0); // First reset the state. |
7 | 717 if (mblen(buf, (size_t)1) <= 0) |
718 n = 2; | |
719 else | |
720 n = 1; | |
721 } | |
722 } | |
723 # endif | |
724 #endif | |
725 } | |
726 | |
727 mb_bytelen_tab[i] = n; | |
728 } | |
729 | |
730 #ifdef LEN_FROM_CONV | |
731 convert_setup(&vimconv, NULL, NULL); | |
732 #endif | |
733 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
734 // The cell width depends on the type of multi-byte characters. |
7 | 735 (void)init_chartab(); |
736 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
737 // When enc_utf8 is set or reset, (de)allocate ScreenLinesUC[] |
7 | 738 screenalloc(FALSE); |
739 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
740 // When using Unicode, set default for 'fileencodings'. |
7 | 741 if (enc_utf8 && !option_was_set((char_u *)"fencs")) |
24912
02fa8d72e4e3
patch 8.2.2993: 'fileencodings' default value should depend on 'encoding'
Bram Moolenaar <Bram@vim.org>
parents:
24790
diff
changeset
|
742 set_fencs_unicode(); |
694 | 743 |
7 | 744 #if defined(HAVE_BIND_TEXTDOMAIN_CODESET) && defined(FEAT_GETTEXT) |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
745 // GNU gettext 0.10.37 supports this feature: set the codeset used for |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
746 // translated messages independently from the current locale. |
7 | 747 (void)bind_textdomain_codeset(VIMPACKAGE, |
748 enc_utf8 ? "utf-8" : (char *)p_enc); | |
749 #endif | |
750 | |
15868
7fad90423bd2
patch 8.1.0941: macros for MS-Windows are inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
15636
diff
changeset
|
751 #ifdef MSWIN |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
752 // When changing 'encoding' while starting up, then convert the command |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
753 // line arguments from the active codepage to 'encoding'. |
23 | 754 if (starting != 0) |
755 fix_arg_enc(); | |
756 #endif | |
757 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
758 // Fire an autocommand to let people do custom font setup. This must be |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
759 // after Vim has been setup for the new encoding. |
7 | 760 apply_autocmds(EVENT_ENCODINGCHANGED, NULL, (char_u *)"", FALSE, curbuf); |
761 | |
740 | 762 #ifdef FEAT_SPELL |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
763 // Need to reload spell dictionaries |
236 | 764 spell_reload(); |
765 #endif | |
766 | |
7 | 767 return NULL; |
768 } | |
769 | |
770 /* | |
771 * Return the size of the BOM for the current buffer: | |
772 * 0 - no BOM | |
773 * 2 - UCS-2 or UTF-16 BOM | |
774 * 4 - UCS-4 BOM | |
775 * 3 - UTF-8 BOM | |
776 */ | |
777 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
778 bomb_size(void) |
7 | 779 { |
780 int n = 0; | |
781 | |
782 if (curbuf->b_p_bomb && !curbuf->b_p_bin) | |
783 { | |
784 if (*curbuf->b_p_fenc == NUL) | |
785 { | |
786 if (enc_utf8) | |
787 { | |
788 if (enc_unicode != 0) | |
789 n = enc_unicode; | |
790 else | |
791 n = 3; | |
792 } | |
793 } | |
794 else if (STRCMP(curbuf->b_p_fenc, "utf-8") == 0) | |
795 n = 3; | |
796 else if (STRNCMP(curbuf->b_p_fenc, "ucs-2", 5) == 0 | |
797 || STRNCMP(curbuf->b_p_fenc, "utf-16", 6) == 0) | |
798 n = 2; | |
799 else if (STRNCMP(curbuf->b_p_fenc, "ucs-4", 5) == 0) | |
800 n = 4; | |
801 } | |
802 return n; | |
803 } | |
804 | |
15555
d89c5b339c2a
patch 8.1.0785: depending on the configuration some functions are unused
Bram Moolenaar <Bram@vim.org>
parents:
15543
diff
changeset
|
805 #if defined(FEAT_QUICKFIX) || defined(PROTO) |
7 | 806 /* |
3002 | 807 * Remove all BOM from "s" by moving remaining text. |
808 */ | |
809 void | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
810 remove_bom(char_u *s) |
3002 | 811 { |
31728
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
812 if (!enc_utf8) |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
813 return; |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
814 |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
815 char_u *p = s; |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
816 |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
817 while ((p = vim_strbyte(p, 0xef)) != NULL) |
3002 | 818 { |
31728
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
819 if (p[1] == 0xbb && p[2] == 0xbf) |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
820 STRMOVE(p, p + 3); |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
821 else |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
822 ++p; |
3002 | 823 } |
824 } | |
15555
d89c5b339c2a
patch 8.1.0785: depending on the configuration some functions are unused
Bram Moolenaar <Bram@vim.org>
parents:
15543
diff
changeset
|
825 #endif |
3002 | 826 |
827 /* | |
7 | 828 * Get class of pointer: |
829 * 0 for blank or NUL | |
830 * 1 for punctuation | |
831 * 2 for an (ASCII) word character | |
832 * >2 for other word characters | |
833 */ | |
834 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
835 mb_get_class(char_u *p) |
7 | 836 { |
4069 | 837 return mb_get_class_buf(p, curbuf); |
838 } | |
839 | |
840 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
841 mb_get_class_buf(char_u *p, buf_T *buf) |
4069 | 842 { |
7 | 843 if (MB_BYTE2LEN(p[0]) == 1) |
844 { | |
11129
f4ea50924c6d
patch 8.0.0452: some macros are in lower case
Christian Brabandt <cb@256bit.org>
parents:
11127
diff
changeset
|
845 if (p[0] == NUL || VIM_ISWHITE(p[0])) |
7 | 846 return 0; |
4069 | 847 if (vim_iswordc_buf(p[0], buf)) |
7 | 848 return 2; |
849 return 1; | |
850 } | |
851 if (enc_dbcs != 0 && p[0] != NUL && p[1] != NUL) | |
852 return dbcs_class(p[0], p[1]); | |
853 if (enc_utf8) | |
10724
ae1c6bf22e5f
patch 8.0.0252: not properly recognizing word characters between 128 and 255
Christian Brabandt <cb@256bit.org>
parents:
10571
diff
changeset
|
854 return utf_class_buf(utf_ptr2char(p), buf); |
7 | 855 return 0; |
856 } | |
857 | |
858 /* | |
859 * Get class of a double-byte character. This always returns 3 or bigger. | |
860 * TODO: Should return 1 for punctuation. | |
861 */ | |
862 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
863 dbcs_class(unsigned lead, unsigned trail) |
7 | 864 { |
865 switch (enc_dbcs) | |
866 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
867 // please add classify routine for your language in here |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
868 |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
869 case DBCS_JPNU: // ? |
7 | 870 case DBCS_JPN: |
871 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
872 // JIS code classification |
7 | 873 unsigned char lb = lead; |
874 unsigned char tb = trail; | |
875 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
876 // convert process code to JIS |
15868
7fad90423bd2
patch 8.1.0941: macros for MS-Windows are inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
15636
diff
changeset
|
877 # if defined(MSWIN) || defined(WIN32UNIX) || defined(MACOS_X) |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
878 // process code is SJIS |
7 | 879 if (lb <= 0x9f) |
880 lb = (lb - 0x81) * 2 + 0x21; | |
881 else | |
882 lb = (lb - 0xc1) * 2 + 0x21; | |
883 if (tb <= 0x7e) | |
884 tb -= 0x1f; | |
885 else if (tb <= 0x9e) | |
886 tb -= 0x20; | |
887 else | |
888 { | |
889 tb -= 0x7e; | |
890 lb += 1; | |
891 } | |
892 # else | |
893 /* | |
894 * XXX: Code page identification can not use with all | |
895 * system! So, some other encoding information | |
896 * will be needed. | |
897 * In japanese: SJIS,EUC,UNICODE,(JIS) | |
898 * Note that JIS-code system don't use as | |
899 * process code in most system because it uses | |
900 * escape sequences(JIS is context depend encoding). | |
901 */ | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
902 // assume process code is JAPANESE-EUC |
7 | 903 lb &= 0x7f; |
904 tb &= 0x7f; | |
905 # endif | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
906 // exceptions |
7 | 907 switch (lb << 8 | tb) |
908 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
909 case 0x2121: // ZENKAKU space |
7 | 910 return 0; |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
911 case 0x2122: // TOU-TEN (Japanese comma) |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
912 case 0x2123: // KU-TEN (Japanese period) |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
913 case 0x2124: // ZENKAKU comma |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
914 case 0x2125: // ZENKAKU period |
7 | 915 return 1; |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
916 case 0x213c: // prolongedsound handled as KATAKANA |
7 | 917 return 13; |
918 } | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
919 // sieved by KU code |
7 | 920 switch (lb) |
921 { | |
922 case 0x21: | |
923 case 0x22: | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
924 // special symbols |
7 | 925 return 10; |
926 case 0x23: | |
19195
2ef19eed524a
patch 8.2.0156: various typos in source files and tests
Bram Moolenaar <Bram@vim.org>
parents:
18800
diff
changeset
|
927 // alphanumeric |
7 | 928 return 11; |
929 case 0x24: | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
930 // hiragana |
7 | 931 return 12; |
932 case 0x25: | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
933 // katakana |
7 | 934 return 13; |
935 case 0x26: | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
936 // greek |
7 | 937 return 14; |
938 case 0x27: | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
939 // russian |
7 | 940 return 15; |
941 case 0x28: | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
942 // lines |
7 | 943 return 16; |
944 default: | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
945 // kanji |
7 | 946 return 17; |
947 } | |
948 } | |
949 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
950 case DBCS_KORU: // ? |
7 | 951 case DBCS_KOR: |
952 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
953 // KS code classification |
7 | 954 unsigned char c1 = lead; |
955 unsigned char c2 = trail; | |
956 | |
957 /* | |
958 * 20 : Hangul | |
959 * 21 : Hanja | |
960 * 22 : Symbols | |
19195
2ef19eed524a
patch 8.2.0156: various typos in source files and tests
Bram Moolenaar <Bram@vim.org>
parents:
18800
diff
changeset
|
961 * 23 : Alphanumeric/Roman Letter (Full width) |
7 | 962 * 24 : Hangul Letter(Alphabet) |
963 * 25 : Roman Numeral/Greek Letter | |
964 * 26 : Box Drawings | |
965 * 27 : Unit Symbols | |
966 * 28 : Circled/Parenthesized Letter | |
4352 | 967 * 29 : Hiragana/Katakana |
7 | 968 * 30 : Cyrillic Letter |
969 */ | |
970 | |
971 if (c1 >= 0xB0 && c1 <= 0xC8) | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
972 // Hangul |
7 | 973 return 20; |
15868
7fad90423bd2
patch 8.1.0941: macros for MS-Windows are inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
15636
diff
changeset
|
974 #if defined(MSWIN) || defined(WIN32UNIX) |
7 | 975 else if (c1 <= 0xA0 || c2 <= 0xA0) |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
976 // Extended Hangul Region : MS UHC(Unified Hangul Code) |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
977 // c1: 0x81-0xA0 with c2: 0x41-0x5A, 0x61-0x7A, 0x81-0xFE |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
978 // c1: 0xA1-0xC6 with c2: 0x41-0x5A, 0x61-0x7A, 0x81-0xA0 |
7 | 979 return 20; |
980 #endif | |
981 | |
982 else if (c1 >= 0xCA && c1 <= 0xFD) | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
983 // Hanja |
7 | 984 return 21; |
985 else switch (c1) | |
986 { | |
987 case 0xA1: | |
988 case 0xA2: | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
989 // Symbols |
7 | 990 return 22; |
991 case 0xA3: | |
19195
2ef19eed524a
patch 8.2.0156: various typos in source files and tests
Bram Moolenaar <Bram@vim.org>
parents:
18800
diff
changeset
|
992 // Alphanumeric |
7 | 993 return 23; |
994 case 0xA4: | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
995 // Hangul Letter(Alphabet) |
7 | 996 return 24; |
997 case 0xA5: | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
998 // Roman Numeral/Greek Letter |
7 | 999 return 25; |
1000 case 0xA6: | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1001 // Box Drawings |
7 | 1002 return 26; |
1003 case 0xA7: | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1004 // Unit Symbols |
7 | 1005 return 27; |
1006 case 0xA8: | |
1007 case 0xA9: | |
1008 if (c2 <= 0xAF) | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1009 return 25; // Roman Letter |
7 | 1010 else if (c2 >= 0xF6) |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1011 return 22; // Symbols |
7 | 1012 else |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1013 // Circled/Parenthesized Letter |
7 | 1014 return 28; |
1015 case 0xAA: | |
1016 case 0xAB: | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1017 // Hiragana/Katakana |
7 | 1018 return 29; |
1019 case 0xAC: | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1020 // Cyrillic Letter |
7 | 1021 return 30; |
1022 } | |
1023 } | |
1024 default: | |
1025 break; | |
1026 } | |
1027 return 3; | |
1028 } | |
1029 | |
1030 /* | |
1031 * mb_char2len() function pointer. | |
1032 * Return length in bytes of character "c". | |
1033 * Returns 1 for a single-byte character. | |
1034 */ | |
1035 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1036 latin_char2len(int c UNUSED) |
7 | 1037 { |
1038 return 1; | |
1039 } | |
1040 | |
1041 static int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1042 dbcs_char2len( |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1043 int c) |
7 | 1044 { |
1045 if (c >= 0x100) | |
1046 return 2; | |
1047 return 1; | |
1048 } | |
1049 | |
1050 /* | |
1051 * mb_char2bytes() function pointer. | |
1052 * Convert a character to its bytes. | |
1053 * Returns the length in bytes. | |
1054 */ | |
1055 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1056 latin_char2bytes(int c, char_u *buf) |
7 | 1057 { |
1058 buf[0] = c; | |
1059 return 1; | |
1060 } | |
1061 | |
1062 static int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1063 dbcs_char2bytes(int c, char_u *buf) |
7 | 1064 { |
1065 if (c >= 0x100) | |
1066 { | |
1067 buf[0] = (unsigned)c >> 8; | |
1068 buf[1] = c; | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1069 // Never use a NUL byte, it causes lots of trouble. It's an invalid |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1070 // character anyway. |
221 | 1071 if (buf[1] == NUL) |
1072 buf[1] = '\n'; | |
7 | 1073 return 2; |
1074 } | |
1075 buf[0] = c; | |
1076 return 1; | |
1077 } | |
1078 | |
1079 /* | |
29761
0cea0cdcce92
patch 9.0.0220: invalid memory access with for loop over NULL string
Bram Moolenaar <Bram@vim.org>
parents:
29672
diff
changeset
|
1080 * Get byte length of character at "*p". Returns zero when "*p" is NUL. |
0cea0cdcce92
patch 9.0.0220: invalid memory access with for loop over NULL string
Bram Moolenaar <Bram@vim.org>
parents:
29672
diff
changeset
|
1081 * Used for mb_ptr2len() when 'encoding' latin. |
7 | 1082 */ |
1083 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1084 latin_ptr2len(char_u *p) |
7 | 1085 { |
29761
0cea0cdcce92
patch 9.0.0220: invalid memory access with for loop over NULL string
Bram Moolenaar <Bram@vim.org>
parents:
29672
diff
changeset
|
1086 return *p == NUL ? 0 : 1; |
7 | 1087 } |
1088 | |
29761
0cea0cdcce92
patch 9.0.0220: invalid memory access with for loop over NULL string
Bram Moolenaar <Bram@vim.org>
parents:
29672
diff
changeset
|
1089 /* |
0cea0cdcce92
patch 9.0.0220: invalid memory access with for loop over NULL string
Bram Moolenaar <Bram@vim.org>
parents:
29672
diff
changeset
|
1090 * Get byte length of character at "*p". Returns zero when "*p" is NUL. |
0cea0cdcce92
patch 9.0.0220: invalid memory access with for loop over NULL string
Bram Moolenaar <Bram@vim.org>
parents:
29672
diff
changeset
|
1091 * Used for mb_ptr2len() when 'encoding' DBCS. |
0cea0cdcce92
patch 9.0.0220: invalid memory access with for loop over NULL string
Bram Moolenaar <Bram@vim.org>
parents:
29672
diff
changeset
|
1092 */ |
7 | 1093 static int |
29761
0cea0cdcce92
patch 9.0.0220: invalid memory access with for loop over NULL string
Bram Moolenaar <Bram@vim.org>
parents:
29672
diff
changeset
|
1094 dbcs_ptr2len(char_u *p) |
7 | 1095 { |
1096 int len; | |
1097 | |
29761
0cea0cdcce92
patch 9.0.0220: invalid memory access with for loop over NULL string
Bram Moolenaar <Bram@vim.org>
parents:
29672
diff
changeset
|
1098 if (*p == NUL) |
0cea0cdcce92
patch 9.0.0220: invalid memory access with for loop over NULL string
Bram Moolenaar <Bram@vim.org>
parents:
29672
diff
changeset
|
1099 return 0; |
0cea0cdcce92
patch 9.0.0220: invalid memory access with for loop over NULL string
Bram Moolenaar <Bram@vim.org>
parents:
29672
diff
changeset
|
1100 |
0cea0cdcce92
patch 9.0.0220: invalid memory access with for loop over NULL string
Bram Moolenaar <Bram@vim.org>
parents:
29672
diff
changeset
|
1101 // if the second byte is missing the length is 1 |
7 | 1102 len = MB_BYTE2LEN(*p); |
1103 if (len == 2 && p[1] == NUL) | |
1104 len = 1; | |
1105 return len; | |
1106 } | |
1107 | |
1903 | 1108 /* |
1109 * mb_ptr2len_len() function pointer. | |
1110 * Like mb_ptr2len(), but limit to read "size" bytes. | |
1111 * Returns 0 for an empty string. | |
1112 * Returns 1 for an illegal char or an incomplete byte sequence. | |
1113 */ | |
1114 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1115 latin_ptr2len_len(char_u *p, int size) |
1903 | 1116 { |
1117 if (size < 1 || *p == NUL) | |
1118 return 0; | |
1119 return 1; | |
1120 } | |
1121 | |
1122 static int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1123 dbcs_ptr2len_len(char_u *p, int size) |
1903 | 1124 { |
1125 int len; | |
1126 | |
1127 if (size < 1 || *p == NUL) | |
1128 return 0; | |
1129 if (size == 1) | |
1130 return 1; | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1131 // Check that second byte is not missing. |
1903 | 1132 len = MB_BYTE2LEN(*p); |
1133 if (len == 2 && p[1] == NUL) | |
1134 len = 1; | |
1135 return len; | |
1136 } | |
1137 | |
7 | 1138 struct interval |
1139 { | |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
1140 long first; |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
1141 long last; |
7 | 1142 }; |
1143 | |
1144 /* | |
1145 * Return TRUE if "c" is in "table[size / sizeof(struct interval)]". | |
1146 */ | |
1147 static int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1148 intable(struct interval *table, size_t size, int c) |
7 | 1149 { |
1150 int mid, bot, top; | |
1151 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1152 // first quick check for Latin1 etc. characters |
7 | 1153 if (c < table[0].first) |
1154 return FALSE; | |
1155 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1156 // binary search in table |
7 | 1157 bot = 0; |
835 | 1158 top = (int)(size / sizeof(struct interval) - 1); |
7 | 1159 while (top >= bot) |
1160 { | |
1161 mid = (bot + top) / 2; | |
1162 if (table[mid].last < c) | |
1163 bot = mid + 1; | |
1164 else if (table[mid].first > c) | |
1165 top = mid - 1; | |
1166 else | |
1167 return TRUE; | |
1168 } | |
1169 return FALSE; | |
1170 } | |
1171 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1172 // Sorted list of non-overlapping intervals of East Asian Ambiguous |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1173 // characters, generated with ../runtime/tools/unicode.vim. |
8819
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1174 static struct interval ambiguous[] = |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1175 { |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1176 {0x00a1, 0x00a1}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1177 {0x00a4, 0x00a4}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1178 {0x00a7, 0x00a8}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1179 {0x00aa, 0x00aa}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1180 {0x00ad, 0x00ae}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1181 {0x00b0, 0x00b4}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1182 {0x00b6, 0x00ba}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1183 {0x00bc, 0x00bf}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1184 {0x00c6, 0x00c6}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1185 {0x00d0, 0x00d0}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1186 {0x00d7, 0x00d8}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1187 {0x00de, 0x00e1}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1188 {0x00e6, 0x00e6}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1189 {0x00e8, 0x00ea}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1190 {0x00ec, 0x00ed}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1191 {0x00f0, 0x00f0}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1192 {0x00f2, 0x00f3}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1193 {0x00f7, 0x00fa}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1194 {0x00fc, 0x00fc}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1195 {0x00fe, 0x00fe}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1196 {0x0101, 0x0101}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1197 {0x0111, 0x0111}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1198 {0x0113, 0x0113}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1199 {0x011b, 0x011b}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1200 {0x0126, 0x0127}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1201 {0x012b, 0x012b}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1202 {0x0131, 0x0133}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1203 {0x0138, 0x0138}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1204 {0x013f, 0x0142}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1205 {0x0144, 0x0144}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1206 {0x0148, 0x014b}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1207 {0x014d, 0x014d}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1208 {0x0152, 0x0153}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1209 {0x0166, 0x0167}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1210 {0x016b, 0x016b}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1211 {0x01ce, 0x01ce}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1212 {0x01d0, 0x01d0}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1213 {0x01d2, 0x01d2}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1214 {0x01d4, 0x01d4}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1215 {0x01d6, 0x01d6}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1216 {0x01d8, 0x01d8}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1217 {0x01da, 0x01da}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1218 {0x01dc, 0x01dc}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1219 {0x0251, 0x0251}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1220 {0x0261, 0x0261}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1221 {0x02c4, 0x02c4}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1222 {0x02c7, 0x02c7}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1223 {0x02c9, 0x02cb}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1224 {0x02cd, 0x02cd}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1225 {0x02d0, 0x02d0}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1226 {0x02d8, 0x02db}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1227 {0x02dd, 0x02dd}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1228 {0x02df, 0x02df}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1229 {0x0300, 0x036f}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1230 {0x0391, 0x03a1}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1231 {0x03a3, 0x03a9}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1232 {0x03b1, 0x03c1}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1233 {0x03c3, 0x03c9}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1234 {0x0401, 0x0401}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1235 {0x0410, 0x044f}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1236 {0x0451, 0x0451}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1237 {0x2010, 0x2010}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1238 {0x2013, 0x2016}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1239 {0x2018, 0x2019}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1240 {0x201c, 0x201d}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1241 {0x2020, 0x2022}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1242 {0x2024, 0x2027}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1243 {0x2030, 0x2030}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1244 {0x2032, 0x2033}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1245 {0x2035, 0x2035}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1246 {0x203b, 0x203b}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1247 {0x203e, 0x203e}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1248 {0x2074, 0x2074}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1249 {0x207f, 0x207f}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1250 {0x2081, 0x2084}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1251 {0x20ac, 0x20ac}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1252 {0x2103, 0x2103}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1253 {0x2105, 0x2105}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1254 {0x2109, 0x2109}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1255 {0x2113, 0x2113}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1256 {0x2116, 0x2116}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1257 {0x2121, 0x2122}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1258 {0x2126, 0x2126}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1259 {0x212b, 0x212b}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1260 {0x2153, 0x2154}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1261 {0x215b, 0x215e}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1262 {0x2160, 0x216b}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1263 {0x2170, 0x2179}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1264 {0x2189, 0x2189}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1265 {0x2190, 0x2199}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1266 {0x21b8, 0x21b9}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1267 {0x21d2, 0x21d2}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1268 {0x21d4, 0x21d4}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1269 {0x21e7, 0x21e7}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1270 {0x2200, 0x2200}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1271 {0x2202, 0x2203}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1272 {0x2207, 0x2208}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1273 {0x220b, 0x220b}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1274 {0x220f, 0x220f}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1275 {0x2211, 0x2211}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1276 {0x2215, 0x2215}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1277 {0x221a, 0x221a}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1278 {0x221d, 0x2220}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1279 {0x2223, 0x2223}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1280 {0x2225, 0x2225}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1281 {0x2227, 0x222c}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1282 {0x222e, 0x222e}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1283 {0x2234, 0x2237}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1284 {0x223c, 0x223d}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1285 {0x2248, 0x2248}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1286 {0x224c, 0x224c}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1287 {0x2252, 0x2252}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1288 {0x2260, 0x2261}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1289 {0x2264, 0x2267}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1290 {0x226a, 0x226b}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1291 {0x226e, 0x226f}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1292 {0x2282, 0x2283}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1293 {0x2286, 0x2287}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1294 {0x2295, 0x2295}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1295 {0x2299, 0x2299}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1296 {0x22a5, 0x22a5}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1297 {0x22bf, 0x22bf}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1298 {0x2312, 0x2312}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1299 {0x2460, 0x24e9}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1300 {0x24eb, 0x254b}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1301 {0x2550, 0x2573}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1302 {0x2580, 0x258f}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1303 {0x2592, 0x2595}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1304 {0x25a0, 0x25a1}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1305 {0x25a3, 0x25a9}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1306 {0x25b2, 0x25b3}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1307 {0x25b6, 0x25b7}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1308 {0x25bc, 0x25bd}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1309 {0x25c0, 0x25c1}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1310 {0x25c6, 0x25c8}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1311 {0x25cb, 0x25cb}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1312 {0x25ce, 0x25d1}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1313 {0x25e2, 0x25e5}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1314 {0x25ef, 0x25ef}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1315 {0x2605, 0x2606}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1316 {0x2609, 0x2609}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1317 {0x260e, 0x260f}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1318 {0x261c, 0x261c}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1319 {0x261e, 0x261e}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1320 {0x2640, 0x2640}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1321 {0x2642, 0x2642}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1322 {0x2660, 0x2661}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1323 {0x2663, 0x2665}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1324 {0x2667, 0x266a}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1325 {0x266c, 0x266d}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1326 {0x266f, 0x266f}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1327 {0x269e, 0x269f}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1328 {0x26bf, 0x26bf}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1329 {0x26c6, 0x26cd}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1330 {0x26cf, 0x26d3}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1331 {0x26d5, 0x26e1}, |
8819
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1332 {0x26e3, 0x26e3}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1333 {0x26e8, 0x26e9}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1334 {0x26eb, 0x26f1}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1335 {0x26f4, 0x26f4}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1336 {0x26f6, 0x26f9}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1337 {0x26fb, 0x26fc}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1338 {0x26fe, 0x26ff}, |
8819
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1339 {0x273d, 0x273d}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1340 {0x2776, 0x277f}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1341 {0x2b56, 0x2b59}, |
8819
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1342 {0x3248, 0x324f}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1343 {0xe000, 0xf8ff}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1344 {0xfe00, 0xfe0f}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1345 {0xfffd, 0xfffd}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1346 {0x1f100, 0x1f10a}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1347 {0x1f110, 0x1f12d}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1348 {0x1f130, 0x1f169}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1349 {0x1f170, 0x1f18d}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1350 {0x1f18f, 0x1f190}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1351 {0x1f19b, 0x1f1ac}, |
8819
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1352 {0xe0100, 0xe01ef}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1353 {0xf0000, 0xffffd}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1354 {0x100000, 0x10fffd} |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1355 }; |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
1356 |
12210
b9b06aa0b6d9
patch 8.0.0985: libvterm has its own idea of character width
Christian Brabandt <cb@256bit.org>
parents:
11539
diff
changeset
|
1357 #if defined(FEAT_TERMINAL) || defined(PROTO) |
b9b06aa0b6d9
patch 8.0.0985: libvterm has its own idea of character width
Christian Brabandt <cb@256bit.org>
parents:
11539
diff
changeset
|
1358 /* |
b9b06aa0b6d9
patch 8.0.0985: libvterm has its own idea of character width
Christian Brabandt <cb@256bit.org>
parents:
11539
diff
changeset
|
1359 * utf_char2cells() with different argument type for libvterm. |
b9b06aa0b6d9
patch 8.0.0985: libvterm has its own idea of character width
Christian Brabandt <cb@256bit.org>
parents:
11539
diff
changeset
|
1360 */ |
b9b06aa0b6d9
patch 8.0.0985: libvterm has its own idea of character width
Christian Brabandt <cb@256bit.org>
parents:
11539
diff
changeset
|
1361 int |
12269
d2373927d76d
patch 8.0.1014: old compiler doesn't know uint32_t
Christian Brabandt <cb@256bit.org>
parents:
12210
diff
changeset
|
1362 utf_uint2cells(UINT32_T c) |
12210
b9b06aa0b6d9
patch 8.0.0985: libvterm has its own idea of character width
Christian Brabandt <cb@256bit.org>
parents:
11539
diff
changeset
|
1363 { |
12650
f58755eb453e
patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents:
12547
diff
changeset
|
1364 if (c >= 0x100 && utf_iscomposing((int)c)) |
f58755eb453e
patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents:
12547
diff
changeset
|
1365 return 0; |
12210
b9b06aa0b6d9
patch 8.0.0985: libvterm has its own idea of character width
Christian Brabandt <cb@256bit.org>
parents:
11539
diff
changeset
|
1366 return utf_char2cells((int)c); |
b9b06aa0b6d9
patch 8.0.0985: libvterm has its own idea of character width
Christian Brabandt <cb@256bit.org>
parents:
11539
diff
changeset
|
1367 } |
b9b06aa0b6d9
patch 8.0.0985: libvterm has its own idea of character width
Christian Brabandt <cb@256bit.org>
parents:
11539
diff
changeset
|
1368 #endif |
b9b06aa0b6d9
patch 8.0.0985: libvterm has its own idea of character width
Christian Brabandt <cb@256bit.org>
parents:
11539
diff
changeset
|
1369 |
7 | 1370 /* |
1371 * For UTF-8 character "c" return 2 for a double-width character, 1 for others. | |
1372 * Returns 4 or 6 for an unprintable character. | |
1373 * Is only correct for characters >= 0x80. | |
1374 * When p_ambw is "double", return 2 for a character with East Asian Width | |
1375 * class 'A'(mbiguous). | |
1376 */ | |
1377 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1378 utf_char2cells(int c) |
7 | 1379 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1380 // Sorted list of non-overlapping intervals of East Asian double width |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1381 // characters, generated with ../runtime/tools/unicode.vim. |
2063
1378bc45ebe5
updated for version 7.2.348
Bram Moolenaar <bram@zimbu.org>
parents:
2041
diff
changeset
|
1382 static struct interval doublewidth[] = |
1378bc45ebe5
updated for version 7.2.348
Bram Moolenaar <bram@zimbu.org>
parents:
2041
diff
changeset
|
1383 { |
1378bc45ebe5
updated for version 7.2.348
Bram Moolenaar <bram@zimbu.org>
parents:
2041
diff
changeset
|
1384 {0x1100, 0x115f}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1385 {0x231a, 0x231b}, |
2063
1378bc45ebe5
updated for version 7.2.348
Bram Moolenaar <bram@zimbu.org>
parents:
2041
diff
changeset
|
1386 {0x2329, 0x232a}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1387 {0x23e9, 0x23ec}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1388 {0x23f0, 0x23f0}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1389 {0x23f3, 0x23f3}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1390 {0x25fd, 0x25fe}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1391 {0x2614, 0x2615}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1392 {0x2648, 0x2653}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1393 {0x267f, 0x267f}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1394 {0x2693, 0x2693}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1395 {0x26a1, 0x26a1}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1396 {0x26aa, 0x26ab}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1397 {0x26bd, 0x26be}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1398 {0x26c4, 0x26c5}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1399 {0x26ce, 0x26ce}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1400 {0x26d4, 0x26d4}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1401 {0x26ea, 0x26ea}, |
25062
042560a16d4e
patch 8.2.3068: Unicode tables are slightly outdated
Bram Moolenaar <Bram@vim.org>
parents:
24912
diff
changeset
|
1402 {0x26f2, 0x26f3}, |
042560a16d4e
patch 8.2.3068: Unicode tables are slightly outdated
Bram Moolenaar <Bram@vim.org>
parents:
24912
diff
changeset
|
1403 {0x26f5, 0x26f5}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1404 {0x26fa, 0x26fa}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1405 {0x26fd, 0x26fd}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1406 {0x2705, 0x2705}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1407 {0x270a, 0x270b}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1408 {0x2728, 0x2728}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1409 {0x274c, 0x274c}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1410 {0x274e, 0x274e}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1411 {0x2753, 0x2755}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1412 {0x2757, 0x2757}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1413 {0x2795, 0x2797}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1414 {0x27b0, 0x27b0}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1415 {0x27bf, 0x27bf}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1416 {0x2b1b, 0x2b1c}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1417 {0x2b50, 0x2b50}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1418 {0x2b55, 0x2b55}, |
2063
1378bc45ebe5
updated for version 7.2.348
Bram Moolenaar <bram@zimbu.org>
parents:
2041
diff
changeset
|
1419 {0x2e80, 0x2e99}, |
1378bc45ebe5
updated for version 7.2.348
Bram Moolenaar <bram@zimbu.org>
parents:
2041
diff
changeset
|
1420 {0x2e9b, 0x2ef3}, |
1378bc45ebe5
updated for version 7.2.348
Bram Moolenaar <bram@zimbu.org>
parents:
2041
diff
changeset
|
1421 {0x2f00, 0x2fd5}, |
33529
6d7a054bf2e3
patch 9.0.2013: Unicode tables outdated
Christian Brabandt <cb@256bit.org>
parents:
33399
diff
changeset
|
1422 {0x2ff0, 0x303e}, |
2063
1378bc45ebe5
updated for version 7.2.348
Bram Moolenaar <bram@zimbu.org>
parents:
2041
diff
changeset
|
1423 {0x3041, 0x3096}, |
6495 | 1424 {0x3099, 0x30ff}, |
14333
65ded7626193
patch 8.1.0182: Unicode standard was updated
Christian Brabandt <cb@256bit.org>
parents:
14075
diff
changeset
|
1425 {0x3105, 0x312f}, |
2063
1378bc45ebe5
updated for version 7.2.348
Bram Moolenaar <bram@zimbu.org>
parents:
2041
diff
changeset
|
1426 {0x3131, 0x318e}, |
25062
042560a16d4e
patch 8.2.3068: Unicode tables are slightly outdated
Bram Moolenaar <Bram@vim.org>
parents:
24912
diff
changeset
|
1427 {0x3190, 0x31e3}, |
33529
6d7a054bf2e3
patch 9.0.2013: Unicode tables outdated
Christian Brabandt <cb@256bit.org>
parents:
33399
diff
changeset
|
1428 {0x31ef, 0x321e}, |
2063
1378bc45ebe5
updated for version 7.2.348
Bram Moolenaar <bram@zimbu.org>
parents:
2041
diff
changeset
|
1429 {0x3220, 0x3247}, |
16938
b2ebc416491b
patch 8.1.1470: new Unicode character U32FF missing from double-width table
Bram Moolenaar <Bram@vim.org>
parents:
16825
diff
changeset
|
1430 {0x3250, 0x4dbf}, |
2063
1378bc45ebe5
updated for version 7.2.348
Bram Moolenaar <bram@zimbu.org>
parents:
2041
diff
changeset
|
1431 {0x4e00, 0xa48c}, |
1378bc45ebe5
updated for version 7.2.348
Bram Moolenaar <bram@zimbu.org>
parents:
2041
diff
changeset
|
1432 {0xa490, 0xa4c6}, |
1378bc45ebe5
updated for version 7.2.348
Bram Moolenaar <bram@zimbu.org>
parents:
2041
diff
changeset
|
1433 {0xa960, 0xa97c}, |
1378bc45ebe5
updated for version 7.2.348
Bram Moolenaar <bram@zimbu.org>
parents:
2041
diff
changeset
|
1434 {0xac00, 0xd7a3}, |
1378bc45ebe5
updated for version 7.2.348
Bram Moolenaar <bram@zimbu.org>
parents:
2041
diff
changeset
|
1435 {0xf900, 0xfaff}, |
1378bc45ebe5
updated for version 7.2.348
Bram Moolenaar <bram@zimbu.org>
parents:
2041
diff
changeset
|
1436 {0xfe10, 0xfe19}, |
1378bc45ebe5
updated for version 7.2.348
Bram Moolenaar <bram@zimbu.org>
parents:
2041
diff
changeset
|
1437 {0xfe30, 0xfe52}, |
1378bc45ebe5
updated for version 7.2.348
Bram Moolenaar <bram@zimbu.org>
parents:
2041
diff
changeset
|
1438 {0xfe54, 0xfe66}, |
1378bc45ebe5
updated for version 7.2.348
Bram Moolenaar <bram@zimbu.org>
parents:
2041
diff
changeset
|
1439 {0xfe68, 0xfe6b}, |
1378bc45ebe5
updated for version 7.2.348
Bram Moolenaar <bram@zimbu.org>
parents:
2041
diff
changeset
|
1440 {0xff01, 0xff60}, |
1378bc45ebe5
updated for version 7.2.348
Bram Moolenaar <bram@zimbu.org>
parents:
2041
diff
changeset
|
1441 {0xffe0, 0xffe6}, |
16304
c83169bdb290
patch 8.1.1157: Unicode tables are out of date
Bram Moolenaar <Bram@vim.org>
parents:
16302
diff
changeset
|
1442 {0x16fe0, 0x16fe3}, |
25062
042560a16d4e
patch 8.2.3068: Unicode tables are slightly outdated
Bram Moolenaar <Bram@vim.org>
parents:
24912
diff
changeset
|
1443 {0x16ff0, 0x16ff1}, |
16304
c83169bdb290
patch 8.1.1157: Unicode tables are out of date
Bram Moolenaar <Bram@vim.org>
parents:
16302
diff
changeset
|
1444 {0x17000, 0x187f7}, |
25062
042560a16d4e
patch 8.2.3068: Unicode tables are slightly outdated
Bram Moolenaar <Bram@vim.org>
parents:
24912
diff
changeset
|
1445 {0x18800, 0x18cd5}, |
042560a16d4e
patch 8.2.3068: Unicode tables are slightly outdated
Bram Moolenaar <Bram@vim.org>
parents:
24912
diff
changeset
|
1446 {0x18d00, 0x18d08}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
1447 {0x1aff0, 0x1aff3}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
1448 {0x1aff5, 0x1affb}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
1449 {0x1affd, 0x1affe}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
1450 {0x1b000, 0x1b122}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
1451 {0x1b132, 0x1b132}, |
16304
c83169bdb290
patch 8.1.1157: Unicode tables are out of date
Bram Moolenaar <Bram@vim.org>
parents:
16302
diff
changeset
|
1452 {0x1b150, 0x1b152}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
1453 {0x1b155, 0x1b155}, |
16304
c83169bdb290
patch 8.1.1157: Unicode tables are out of date
Bram Moolenaar <Bram@vim.org>
parents:
16302
diff
changeset
|
1454 {0x1b164, 0x1b167}, |
11539
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1455 {0x1b170, 0x1b2fb}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1456 {0x1f004, 0x1f004}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1457 {0x1f0cf, 0x1f0cf}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1458 {0x1f18e, 0x1f18e}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1459 {0x1f191, 0x1f19a}, |
8682
4ce551bd5024
commit https://github.com/vim/vim/commit/d63aff0a65b955447de2fd8bfdaee29b61ce2843
Christian Brabandt <cb@256bit.org>
parents:
8680
diff
changeset
|
1460 {0x1f200, 0x1f202}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1461 {0x1f210, 0x1f23b}, |
8682
4ce551bd5024
commit https://github.com/vim/vim/commit/d63aff0a65b955447de2fd8bfdaee29b61ce2843
Christian Brabandt <cb@256bit.org>
parents:
8680
diff
changeset
|
1462 {0x1f240, 0x1f248}, |
4ce551bd5024
commit https://github.com/vim/vim/commit/d63aff0a65b955447de2fd8bfdaee29b61ce2843
Christian Brabandt <cb@256bit.org>
parents:
8680
diff
changeset
|
1463 {0x1f250, 0x1f251}, |
11539
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1464 {0x1f260, 0x1f265}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1465 {0x1f300, 0x1f320}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1466 {0x1f32d, 0x1f335}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1467 {0x1f337, 0x1f37c}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1468 {0x1f37e, 0x1f393}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1469 {0x1f3a0, 0x1f3ca}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1470 {0x1f3cf, 0x1f3d3}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1471 {0x1f3e0, 0x1f3f0}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1472 {0x1f3f4, 0x1f3f4}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1473 {0x1f3f8, 0x1f43e}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1474 {0x1f440, 0x1f440}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1475 {0x1f442, 0x1f4fc}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1476 {0x1f4ff, 0x1f53d}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1477 {0x1f54b, 0x1f54e}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1478 {0x1f550, 0x1f567}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1479 {0x1f57a, 0x1f57a}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1480 {0x1f595, 0x1f596}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1481 {0x1f5a4, 0x1f5a4}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1482 {0x1f5fb, 0x1f64f}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1483 {0x1f680, 0x1f6c5}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1484 {0x1f6cc, 0x1f6cc}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1485 {0x1f6d0, 0x1f6d2}, |
25062
042560a16d4e
patch 8.2.3068: Unicode tables are slightly outdated
Bram Moolenaar <Bram@vim.org>
parents:
24912
diff
changeset
|
1486 {0x1f6d5, 0x1f6d7}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
1487 {0x1f6dc, 0x1f6df}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
1488 {0x1f6eb, 0x1f6ec}, |
25062
042560a16d4e
patch 8.2.3068: Unicode tables are slightly outdated
Bram Moolenaar <Bram@vim.org>
parents:
24912
diff
changeset
|
1489 {0x1f6f4, 0x1f6fc}, |
16304
c83169bdb290
patch 8.1.1157: Unicode tables are out of date
Bram Moolenaar <Bram@vim.org>
parents:
16302
diff
changeset
|
1490 {0x1f7e0, 0x1f7eb}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
1491 {0x1f7f0, 0x1f7f0}, |
25062
042560a16d4e
patch 8.2.3068: Unicode tables are slightly outdated
Bram Moolenaar <Bram@vim.org>
parents:
24912
diff
changeset
|
1492 {0x1f90c, 0x1f93a}, |
042560a16d4e
patch 8.2.3068: Unicode tables are slightly outdated
Bram Moolenaar <Bram@vim.org>
parents:
24912
diff
changeset
|
1493 {0x1f93c, 0x1f945}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
1494 {0x1f947, 0x1f9ff}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
1495 {0x1fa70, 0x1fa7c}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
1496 {0x1fa80, 0x1fa88}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
1497 {0x1fa90, 0x1fabd}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
1498 {0x1fabf, 0x1fac5}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
1499 {0x1face, 0x1fadb}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
1500 {0x1fae0, 0x1fae8}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
1501 {0x1faf0, 0x1faf8}, |
2063
1378bc45ebe5
updated for version 7.2.348
Bram Moolenaar <bram@zimbu.org>
parents:
2041
diff
changeset
|
1502 {0x20000, 0x2fffd}, |
1378bc45ebe5
updated for version 7.2.348
Bram Moolenaar <bram@zimbu.org>
parents:
2041
diff
changeset
|
1503 {0x30000, 0x3fffd} |
1378bc45ebe5
updated for version 7.2.348
Bram Moolenaar <bram@zimbu.org>
parents:
2041
diff
changeset
|
1504 }; |
6495 | 1505 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1506 // Sorted list of non-overlapping intervals of Emoji characters that don't |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1507 // have ambiguous or double width, |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1508 // based on http://unicode.org/emoji/charts/emoji-list.html |
21971
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
1509 static struct interval emoji_wide[] = |
8680
131e651fb347
commit https://github.com/vim/vim/commit/b86f10ee10bdf932df02bdaf601dffa671518a47
Christian Brabandt <cb@256bit.org>
parents:
8661
diff
changeset
|
1510 { |
21973
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
1511 {0x23ed, 0x23ef}, |
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
1512 {0x23f1, 0x23f2}, |
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
1513 {0x23f8, 0x23fa}, |
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
1514 {0x24c2, 0x24c2}, |
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
1515 {0x261d, 0x261d}, |
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
1516 {0x26c8, 0x26c8}, |
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
1517 {0x26cf, 0x26cf}, |
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
1518 {0x26d1, 0x26d1}, |
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
1519 {0x26d3, 0x26d3}, |
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
1520 {0x26e9, 0x26e9}, |
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
1521 {0x26f0, 0x26f1}, |
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
1522 {0x26f7, 0x26f9}, |
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
1523 {0x270c, 0x270d}, |
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
1524 {0x2934, 0x2935}, |
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
1525 {0x1f170, 0x1f189}, |
8680
131e651fb347
commit https://github.com/vim/vim/commit/b86f10ee10bdf932df02bdaf601dffa671518a47
Christian Brabandt <cb@256bit.org>
parents:
8661
diff
changeset
|
1526 {0x1f1e6, 0x1f1ff}, |
11539
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1527 {0x1f321, 0x1f321}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1528 {0x1f324, 0x1f32c}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1529 {0x1f336, 0x1f336}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1530 {0x1f37d, 0x1f37d}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1531 {0x1f396, 0x1f397}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1532 {0x1f399, 0x1f39b}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1533 {0x1f39e, 0x1f39f}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1534 {0x1f3cb, 0x1f3ce}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1535 {0x1f3d4, 0x1f3df}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1536 {0x1f3f3, 0x1f3f5}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1537 {0x1f3f7, 0x1f3f7}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1538 {0x1f43f, 0x1f43f}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1539 {0x1f441, 0x1f441}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1540 {0x1f4fd, 0x1f4fd}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1541 {0x1f549, 0x1f54a}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1542 {0x1f56f, 0x1f570}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1543 {0x1f573, 0x1f579}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1544 {0x1f587, 0x1f587}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1545 {0x1f58a, 0x1f58d}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1546 {0x1f590, 0x1f590}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1547 {0x1f5a5, 0x1f5a5}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1548 {0x1f5a8, 0x1f5a8}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1549 {0x1f5b1, 0x1f5b2}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1550 {0x1f5bc, 0x1f5bc}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1551 {0x1f5c2, 0x1f5c4}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1552 {0x1f5d1, 0x1f5d3}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1553 {0x1f5dc, 0x1f5de}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1554 {0x1f5e1, 0x1f5e1}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1555 {0x1f5e3, 0x1f5e3}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1556 {0x1f5e8, 0x1f5e8}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1557 {0x1f5ef, 0x1f5ef}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1558 {0x1f5f3, 0x1f5f3}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1559 {0x1f5fa, 0x1f5fa}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1560 {0x1f6cb, 0x1f6cf}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1561 {0x1f6e0, 0x1f6e5}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1562 {0x1f6e9, 0x1f6e9}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1563 {0x1f6f0, 0x1f6f0}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
1564 {0x1f6f3, 0x1f6f3} |
24381
7b84cf514dd8
patch 8.2.2731: Mac: SF symbols are not displayed properly
Bram Moolenaar <Bram@vim.org>
parents:
24246
diff
changeset
|
1565 |
7b84cf514dd8
patch 8.2.2731: Mac: SF symbols are not displayed properly
Bram Moolenaar <Bram@vim.org>
parents:
24246
diff
changeset
|
1566 #ifdef MACOS_X |
31014
22eeb290c752
patch 9.0.0842: Unicode range for Apple SF symbols is outdated
Bram Moolenaar <Bram@vim.org>
parents:
30663
diff
changeset
|
1567 // Include SF Symbols 4 characters, which should be rendered as |
22eeb290c752
patch 9.0.0842: Unicode range for Apple SF symbols is outdated
Bram Moolenaar <Bram@vim.org>
parents:
30663
diff
changeset
|
1568 // double-width. SF Symbols is an Apple-specific set of symbols and |
22eeb290c752
patch 9.0.0842: Unicode range for Apple SF symbols is outdated
Bram Moolenaar <Bram@vim.org>
parents:
30663
diff
changeset
|
1569 // icons for use in Apple operating systems. They are included as |
22eeb290c752
patch 9.0.0842: Unicode range for Apple SF symbols is outdated
Bram Moolenaar <Bram@vim.org>
parents:
30663
diff
changeset
|
1570 // glyphs as part of the default San Francisco fonts shipped with |
22eeb290c752
patch 9.0.0842: Unicode range for Apple SF symbols is outdated
Bram Moolenaar <Bram@vim.org>
parents:
30663
diff
changeset
|
1571 // macOS. The current version is SF Symbols 4. |
22eeb290c752
patch 9.0.0842: Unicode range for Apple SF symbols is outdated
Bram Moolenaar <Bram@vim.org>
parents:
30663
diff
changeset
|
1572 // |
22eeb290c752
patch 9.0.0842: Unicode range for Apple SF symbols is outdated
Bram Moolenaar <Bram@vim.org>
parents:
30663
diff
changeset
|
1573 // These Apple-specific glyphs are not part of standard Unicode, and |
22eeb290c752
patch 9.0.0842: Unicode range for Apple SF symbols is outdated
Bram Moolenaar <Bram@vim.org>
parents:
30663
diff
changeset
|
1574 // all of them are in the Supplementary Private Use Area-B range. The |
22eeb290c752
patch 9.0.0842: Unicode range for Apple SF symbols is outdated
Bram Moolenaar <Bram@vim.org>
parents:
30663
diff
changeset
|
1575 // exact range was determined by downloading the 'SF Symbols 4' app |
22eeb290c752
patch 9.0.0842: Unicode range for Apple SF symbols is outdated
Bram Moolenaar <Bram@vim.org>
parents:
30663
diff
changeset
|
1576 // from Apple (https://developer.apple.com/sf-symbols/), and then |
22eeb290c752
patch 9.0.0842: Unicode range for Apple SF symbols is outdated
Bram Moolenaar <Bram@vim.org>
parents:
30663
diff
changeset
|
1577 // selecting all symbols, copying them out, and inspecting the unicode |
22eeb290c752
patch 9.0.0842: Unicode range for Apple SF symbols is outdated
Bram Moolenaar <Bram@vim.org>
parents:
30663
diff
changeset
|
1578 // values of them. |
22eeb290c752
patch 9.0.0842: Unicode range for Apple SF symbols is outdated
Bram Moolenaar <Bram@vim.org>
parents:
30663
diff
changeset
|
1579 // |
22eeb290c752
patch 9.0.0842: Unicode range for Apple SF symbols is outdated
Bram Moolenaar <Bram@vim.org>
parents:
30663
diff
changeset
|
1580 // Note that these symbols are of varying widths, as they are symbols |
32118
04d9dff67d99
patch 9.0.1390: FOR_ALL_ macros are defined in an unexpected file
Bram Moolenaar <Bram@vim.org>
parents:
31782
diff
changeset
|
1581 // representing different things ranging from a simple gear icon to an |
31014
22eeb290c752
patch 9.0.0842: Unicode range for Apple SF symbols is outdated
Bram Moolenaar <Bram@vim.org>
parents:
30663
diff
changeset
|
1582 // airplane. Some of them are in fact wider than double-width, but Vim |
22eeb290c752
patch 9.0.0842: Unicode range for Apple SF symbols is outdated
Bram Moolenaar <Bram@vim.org>
parents:
30663
diff
changeset
|
1583 // doesn't support non-fixed-width font, and tagging them as |
22eeb290c752
patch 9.0.0842: Unicode range for Apple SF symbols is outdated
Bram Moolenaar <Bram@vim.org>
parents:
30663
diff
changeset
|
1584 // double-width is the best way to handle them. |
22eeb290c752
patch 9.0.0842: Unicode range for Apple SF symbols is outdated
Bram Moolenaar <Bram@vim.org>
parents:
30663
diff
changeset
|
1585 // |
22eeb290c752
patch 9.0.0842: Unicode range for Apple SF symbols is outdated
Bram Moolenaar <Bram@vim.org>
parents:
30663
diff
changeset
|
1586 // Also see https://en.wikipedia.org/wiki/San_Francisco_(sans-serif_typeface)#SF_Symbols |
22eeb290c752
patch 9.0.0842: Unicode range for Apple SF symbols is outdated
Bram Moolenaar <Bram@vim.org>
parents:
30663
diff
changeset
|
1587 , {0x100000, 0x1018c7} |
24381
7b84cf514dd8
patch 8.2.2731: Mac: SF symbols are not displayed properly
Bram Moolenaar <Bram@vim.org>
parents:
24246
diff
changeset
|
1588 #endif |
8680
131e651fb347
commit https://github.com/vim/vim/commit/b86f10ee10bdf932df02bdaf601dffa671518a47
Christian Brabandt <cb@256bit.org>
parents:
8661
diff
changeset
|
1589 }; |
131e651fb347
commit https://github.com/vim/vim/commit/b86f10ee10bdf932df02bdaf601dffa671518a47
Christian Brabandt <cb@256bit.org>
parents:
8661
diff
changeset
|
1590 |
31782
a19ef442c77a
patch 9.0.1223: cannot use setcellwidths() below 0x100
Bram Moolenaar <Bram@vim.org>
parents:
31768
diff
changeset
|
1591 #ifdef FEAT_EVAL |
a19ef442c77a
patch 9.0.1223: cannot use setcellwidths() below 0x100
Bram Moolenaar <Bram@vim.org>
parents:
31768
diff
changeset
|
1592 // Use the value from setcellwidths() at 0x80 and higher, unless the |
a19ef442c77a
patch 9.0.1223: cannot use setcellwidths() below 0x100
Bram Moolenaar <Bram@vim.org>
parents:
31768
diff
changeset
|
1593 // character is not printable. |
a19ef442c77a
patch 9.0.1223: cannot use setcellwidths() below 0x100
Bram Moolenaar <Bram@vim.org>
parents:
31768
diff
changeset
|
1594 if (c >= 0x80 && |
a19ef442c77a
patch 9.0.1223: cannot use setcellwidths() below 0x100
Bram Moolenaar <Bram@vim.org>
parents:
31768
diff
changeset
|
1595 # ifdef USE_WCHAR_FUNCTIONS |
a19ef442c77a
patch 9.0.1223: cannot use setcellwidths() below 0x100
Bram Moolenaar <Bram@vim.org>
parents:
31768
diff
changeset
|
1596 wcwidth(c) >= 1 && |
a19ef442c77a
patch 9.0.1223: cannot use setcellwidths() below 0x100
Bram Moolenaar <Bram@vim.org>
parents:
31768
diff
changeset
|
1597 # endif |
a19ef442c77a
patch 9.0.1223: cannot use setcellwidths() below 0x100
Bram Moolenaar <Bram@vim.org>
parents:
31768
diff
changeset
|
1598 vim_isprintc(c)) |
a19ef442c77a
patch 9.0.1223: cannot use setcellwidths() below 0x100
Bram Moolenaar <Bram@vim.org>
parents:
31768
diff
changeset
|
1599 { |
a19ef442c77a
patch 9.0.1223: cannot use setcellwidths() below 0x100
Bram Moolenaar <Bram@vim.org>
parents:
31768
diff
changeset
|
1600 int n = cw_value(c); |
a19ef442c77a
patch 9.0.1223: cannot use setcellwidths() below 0x100
Bram Moolenaar <Bram@vim.org>
parents:
31768
diff
changeset
|
1601 if (n != 0) |
a19ef442c77a
patch 9.0.1223: cannot use setcellwidths() below 0x100
Bram Moolenaar <Bram@vim.org>
parents:
31768
diff
changeset
|
1602 return n; |
a19ef442c77a
patch 9.0.1223: cannot use setcellwidths() below 0x100
Bram Moolenaar <Bram@vim.org>
parents:
31768
diff
changeset
|
1603 } |
a19ef442c77a
patch 9.0.1223: cannot use setcellwidths() below 0x100
Bram Moolenaar <Bram@vim.org>
parents:
31768
diff
changeset
|
1604 #endif |
a19ef442c77a
patch 9.0.1223: cannot use setcellwidths() below 0x100
Bram Moolenaar <Bram@vim.org>
parents:
31768
diff
changeset
|
1605 |
7 | 1606 if (c >= 0x100) |
1607 { | |
31782
a19ef442c77a
patch 9.0.1223: cannot use setcellwidths() below 0x100
Bram Moolenaar <Bram@vim.org>
parents:
31768
diff
changeset
|
1608 #ifdef USE_WCHAR_FUNCTIONS |
21971
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
1609 int n; |
31782
a19ef442c77a
patch 9.0.1223: cannot use setcellwidths() below 0x100
Bram Moolenaar <Bram@vim.org>
parents:
31768
diff
changeset
|
1610 |
7 | 1611 /* |
1612 * Assume the library function wcwidth() works better than our own | |
1613 * stuff. It should return 1 for ambiguous width chars! | |
1614 */ | |
21971
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
1615 n = wcwidth(c); |
7 | 1616 |
1617 if (n < 0) | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1618 return 6; // unprintable, displays <xxxx> |
7 | 1619 if (n > 1) |
1620 return n; | |
1621 #else | |
1622 if (!utf_printable(c)) | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1623 return 6; // unprintable, displays <xxxx> |
2063
1378bc45ebe5
updated for version 7.2.348
Bram Moolenaar <bram@zimbu.org>
parents:
2041
diff
changeset
|
1624 if (intable(doublewidth, sizeof(doublewidth), c)) |
7 | 1625 return 2; |
1626 #endif | |
21971
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
1627 if (p_emoji && intable(emoji_wide, sizeof(emoji_wide), c)) |
8629
54ac275e3fc4
commit https://github.com/vim/vim/commit/3848e00e0177abdb31bc600234967863ec487233
Christian Brabandt <cb@256bit.org>
parents:
8218
diff
changeset
|
1628 return 2; |
7 | 1629 } |
1630 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1631 // Characters below 0x100 are influenced by 'isprint' option |
7 | 1632 else if (c >= 0x80 && !vim_isprintc(c)) |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1633 return 4; // unprintable, displays <xx> |
7 | 1634 |
1635 if (c >= 0x80 && *p_ambw == 'd' && intable(ambiguous, sizeof(ambiguous), c)) | |
1636 return 2; | |
1637 | |
1638 return 1; | |
1639 } | |
1640 | |
1641 /* | |
1642 * mb_ptr2cells() function pointer. | |
1643 * Return the number of display cells character at "*p" occupies. | |
1644 * This doesn't take care of unprintable characters, use ptr2cells() for that. | |
1645 */ | |
1646 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1647 latin_ptr2cells(char_u *p UNUSED) |
7 | 1648 { |
1649 return 1; | |
1650 } | |
1651 | |
1652 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1653 utf_ptr2cells( |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1654 char_u *p) |
7 | 1655 { |
1656 int c; | |
1657 | |
21996
808edde1e97d
patch 8.2.1547: various comment problems
Bram Moolenaar <Bram@vim.org>
parents:
21975
diff
changeset
|
1658 // Need to convert to a character number. |
7 | 1659 if (*p >= 0x80) |
1660 { | |
1661 c = utf_ptr2char(p); | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1662 // An illegal byte is displayed as <xx>. |
474 | 1663 if (utf_ptr2len(p) == 1 || c == NUL) |
7 | 1664 return 4; |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1665 // If the char is ASCII it must be an overlong sequence. |
7 | 1666 if (c < 0x80) |
1667 return char2cells(c); | |
1668 return utf_char2cells(c); | |
1669 } | |
1670 return 1; | |
1671 } | |
1672 | |
1673 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1674 dbcs_ptr2cells(char_u *p) |
7 | 1675 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1676 // Number of cells is equal to number of bytes, except for euc-jp when |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1677 // the first byte is 0x8e. |
7 | 1678 if (enc_dbcs == DBCS_JPNU && *p == 0x8e) |
1679 return 1; | |
1680 return MB_BYTE2LEN(*p); | |
1681 } | |
1682 | |
1683 /* | |
1903 | 1684 * mb_ptr2cells_len() function pointer. |
1685 * Like mb_ptr2cells(), but limit string length to "size". | |
1686 * For an empty string or truncated character returns 1. | |
1687 */ | |
1688 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1689 latin_ptr2cells_len(char_u *p UNUSED, int size UNUSED) |
1903 | 1690 { |
1691 return 1; | |
1692 } | |
1693 | |
1694 static int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1695 utf_ptr2cells_len(char_u *p, int size) |
1903 | 1696 { |
1697 int c; | |
1698 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1699 // Need to convert to a wide character. |
1903 | 1700 if (size > 0 && *p >= 0x80) |
1701 { | |
1702 if (utf_ptr2len_len(p, size) < utf8len_tab[*p]) | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1703 return 1; // truncated |
1903 | 1704 c = utf_ptr2char(p); |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1705 // An illegal byte is displayed as <xx>. |
1903 | 1706 if (utf_ptr2len(p) == 1 || c == NUL) |
1707 return 4; | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1708 // If the char is ASCII it must be an overlong sequence. |
1903 | 1709 if (c < 0x80) |
1710 return char2cells(c); | |
1711 return utf_char2cells(c); | |
1712 } | |
1713 return 1; | |
1714 } | |
1715 | |
1716 static int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1717 dbcs_ptr2cells_len(char_u *p, int size) |
1903 | 1718 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1719 // Number of cells is equal to number of bytes, except for euc-jp when |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1720 // the first byte is 0x8e. |
1903 | 1721 if (size <= 1 || (enc_dbcs == DBCS_JPNU && *p == 0x8e)) |
1722 return 1; | |
1723 return MB_BYTE2LEN(*p); | |
1724 } | |
1725 | |
1726 /* | |
7 | 1727 * mb_char2cells() function pointer. |
1728 * Return the number of display cells character "c" occupies. | |
1729 * Only takes care of multi-byte chars, not "^C" and such. | |
1730 */ | |
1731 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1732 latin_char2cells(int c UNUSED) |
7 | 1733 { |
1734 return 1; | |
1735 } | |
1736 | |
1737 static int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1738 dbcs_char2cells(int c) |
7 | 1739 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1740 // Number of cells is equal to number of bytes, except for euc-jp when |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1741 // the first byte is 0x8e. |
7 | 1742 if (enc_dbcs == DBCS_JPNU && ((unsigned)c >> 8) == 0x8e) |
1743 return 1; | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1744 // use the first byte |
7 | 1745 return MB_BYTE2LEN((unsigned)c >> 8); |
1746 } | |
1747 | |
1748 /* | |
2338
da6ec32d8d8f
Added strwidth() and strchars() functions.
Bram Moolenaar <bram@vim.org>
parents:
2311
diff
changeset
|
1749 * Return the number of cells occupied by string "p". |
da6ec32d8d8f
Added strwidth() and strchars() functions.
Bram Moolenaar <bram@vim.org>
parents:
2311
diff
changeset
|
1750 * Stop at a NUL character. When "len" >= 0 stop at character "p[len]". |
da6ec32d8d8f
Added strwidth() and strchars() functions.
Bram Moolenaar <bram@vim.org>
parents:
2311
diff
changeset
|
1751 */ |
da6ec32d8d8f
Added strwidth() and strchars() functions.
Bram Moolenaar <bram@vim.org>
parents:
2311
diff
changeset
|
1752 int |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1753 mb_string2cells(char_u *p, int len) |
2338
da6ec32d8d8f
Added strwidth() and strchars() functions.
Bram Moolenaar <bram@vim.org>
parents:
2311
diff
changeset
|
1754 { |
da6ec32d8d8f
Added strwidth() and strchars() functions.
Bram Moolenaar <bram@vim.org>
parents:
2311
diff
changeset
|
1755 int i; |
da6ec32d8d8f
Added strwidth() and strchars() functions.
Bram Moolenaar <bram@vim.org>
parents:
2311
diff
changeset
|
1756 int clen = 0; |
da6ec32d8d8f
Added strwidth() and strchars() functions.
Bram Moolenaar <bram@vim.org>
parents:
2311
diff
changeset
|
1757 |
da6ec32d8d8f
Added strwidth() and strchars() functions.
Bram Moolenaar <bram@vim.org>
parents:
2311
diff
changeset
|
1758 for (i = 0; (len < 0 || i < len) && p[i] != NUL; i += (*mb_ptr2len)(p + i)) |
da6ec32d8d8f
Added strwidth() and strchars() functions.
Bram Moolenaar <bram@vim.org>
parents:
2311
diff
changeset
|
1759 clen += (*mb_ptr2cells)(p + i); |
da6ec32d8d8f
Added strwidth() and strchars() functions.
Bram Moolenaar <bram@vim.org>
parents:
2311
diff
changeset
|
1760 return clen; |
da6ec32d8d8f
Added strwidth() and strchars() functions.
Bram Moolenaar <bram@vim.org>
parents:
2311
diff
changeset
|
1761 } |
da6ec32d8d8f
Added strwidth() and strchars() functions.
Bram Moolenaar <bram@vim.org>
parents:
2311
diff
changeset
|
1762 |
da6ec32d8d8f
Added strwidth() and strchars() functions.
Bram Moolenaar <bram@vim.org>
parents:
2311
diff
changeset
|
1763 /* |
7 | 1764 * mb_off2cells() function pointer. |
1765 * Return number of display cells for char at ScreenLines[off]. | |
1378 | 1766 * We make sure that the offset used is less than "max_off". |
7 | 1767 */ |
1768 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1769 latin_off2cells(unsigned off UNUSED, unsigned max_off UNUSED) |
7 | 1770 { |
1771 return 1; | |
1772 } | |
1773 | |
1774 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1775 dbcs_off2cells(unsigned off, unsigned max_off) |
7 | 1776 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1777 // never check beyond end of the line |
1378 | 1778 if (off >= max_off) |
1779 return 1; | |
1780 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1781 // Number of cells is equal to number of bytes, except for euc-jp when |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1782 // the first byte is 0x8e. |
7 | 1783 if (enc_dbcs == DBCS_JPNU && ScreenLines[off] == 0x8e) |
1784 return 1; | |
1785 return MB_BYTE2LEN(ScreenLines[off]); | |
1786 } | |
1787 | |
1788 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1789 utf_off2cells(unsigned off, unsigned max_off) |
7 | 1790 { |
1378 | 1791 return (off + 1 < max_off && ScreenLines[off + 1] == 0) ? 2 : 1; |
7 | 1792 } |
1793 | |
1794 /* | |
1795 * mb_ptr2char() function pointer. | |
1796 * Convert a byte sequence into a character. | |
1797 */ | |
1798 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1799 latin_ptr2char(char_u *p) |
7 | 1800 { |
1801 return *p; | |
1802 } | |
1803 | |
1804 static int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1805 dbcs_ptr2char(char_u *p) |
7 | 1806 { |
1807 if (MB_BYTE2LEN(*p) > 1 && p[1] != NUL) | |
1808 return (p[0] << 8) + p[1]; | |
1809 return *p; | |
1810 } | |
1811 | |
1812 /* | |
21996
808edde1e97d
patch 8.2.1547: various comment problems
Bram Moolenaar <Bram@vim.org>
parents:
21975
diff
changeset
|
1813 * Convert a UTF-8 byte sequence to a character number. |
7 | 1814 * If the sequence is illegal or truncated by a NUL the first byte is |
1815 * returned. | |
13117
cfaa513efa3f
patch 8.0.1433: illegal memory access after undo
Christian Brabandt <cb@256bit.org>
parents:
12948
diff
changeset
|
1816 * For an overlong sequence this may return zero. |
7 | 1817 * Does not include composing characters, of course. |
1818 */ | |
1819 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1820 utf_ptr2char(char_u *p) |
7 | 1821 { |
1822 int len; | |
1823 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1824 if (p[0] < 0x80) // be quick for ASCII |
7 | 1825 return p[0]; |
1826 | |
2015 | 1827 len = utf8len_tab_zero[p[0]]; |
1658 | 1828 if (len > 1 && (p[1] & 0xc0) == 0x80) |
7 | 1829 { |
1830 if (len == 2) | |
1831 return ((p[0] & 0x1f) << 6) + (p[1] & 0x3f); | |
1832 if ((p[2] & 0xc0) == 0x80) | |
1833 { | |
1834 if (len == 3) | |
1835 return ((p[0] & 0x0f) << 12) + ((p[1] & 0x3f) << 6) | |
1836 + (p[2] & 0x3f); | |
1837 if ((p[3] & 0xc0) == 0x80) | |
1838 { | |
1839 if (len == 4) | |
1840 return ((p[0] & 0x07) << 18) + ((p[1] & 0x3f) << 12) | |
1841 + ((p[2] & 0x3f) << 6) + (p[3] & 0x3f); | |
1842 if ((p[4] & 0xc0) == 0x80) | |
1843 { | |
1844 if (len == 5) | |
1845 return ((p[0] & 0x03) << 24) + ((p[1] & 0x3f) << 18) | |
1846 + ((p[2] & 0x3f) << 12) + ((p[3] & 0x3f) << 6) | |
1847 + (p[4] & 0x3f); | |
1848 if ((p[5] & 0xc0) == 0x80 && len == 6) | |
1849 return ((p[0] & 0x01) << 30) + ((p[1] & 0x3f) << 24) | |
1850 + ((p[2] & 0x3f) << 18) + ((p[3] & 0x3f) << 12) | |
1851 + ((p[4] & 0x3f) << 6) + (p[5] & 0x3f); | |
1852 } | |
1853 } | |
1854 } | |
1855 } | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1856 // Illegal value, just return the first byte |
7 | 1857 return p[0]; |
1858 } | |
1859 | |
1860 /* | |
2961 | 1861 * Convert a UTF-8 byte sequence to a wide character. |
1862 * String is assumed to be terminated by NUL or after "n" bytes, whichever | |
1863 * comes first. | |
1864 * The function is safe in the sense that it never accesses memory beyond the | |
1865 * first "n" bytes of "s". | |
1866 * | |
1867 * On success, returns decoded codepoint, advances "s" to the beginning of | |
1868 * next character and decreases "n" accordingly. | |
1869 * | |
1870 * If end of string was reached, returns 0 and, if "n" > 0, advances "s" past | |
1871 * NUL byte. | |
1872 * | |
1873 * If byte sequence is illegal or incomplete, returns -1 and does not advance | |
1874 * "s". | |
1875 */ | |
1876 static int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1877 utf_safe_read_char_adv(char_u **s, size_t *n) |
2961 | 1878 { |
1879 int c, k; | |
1880 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1881 if (*n == 0) // end of buffer |
2961 | 1882 return 0; |
1883 | |
1884 k = utf8len_tab_zero[**s]; | |
1885 | |
1886 if (k == 1) | |
1887 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1888 // ASCII character or NUL |
2961 | 1889 (*n)--; |
1890 return *(*s)++; | |
1891 } | |
1892 | |
1893 if ((size_t)k <= *n) | |
1894 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1895 // We have a multibyte sequence and it isn't truncated by buffer |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1896 // limits so utf_ptr2char() is safe to use. Or the first byte is |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1897 // illegal (k=0), and it's also safe to use utf_ptr2char(). |
2961 | 1898 c = utf_ptr2char(*s); |
1899 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1900 // On failure, utf_ptr2char() returns the first byte, so here we |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1901 // check equality with the first byte. The only non-ASCII character |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1902 // which equals the first byte of its own UTF-8 representation is |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1903 // U+00C3 (UTF-8: 0xC3 0x83), so need to check that special case too. |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1904 // It's safe even if n=1, else we would have k=2 > n. |
2961 | 1905 if (c != (int)(**s) || (c == 0xC3 && (*s)[1] == 0x83)) |
1906 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1907 // byte sequence was successfully decoded |
2961 | 1908 *s += k; |
1909 *n -= k; | |
1910 return c; | |
1911 } | |
1912 } | |
1913 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1914 // byte sequence is incomplete or illegal |
2961 | 1915 return -1; |
1916 } | |
1917 | |
1918 /* | |
7 | 1919 * Get character at **pp and advance *pp to the next character. |
1920 * Note: composing characters are skipped! | |
1921 */ | |
1922 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1923 mb_ptr2char_adv(char_u **pp) |
7 | 1924 { |
1925 int c; | |
1926 | |
1927 c = (*mb_ptr2char)(*pp); | |
474 | 1928 *pp += (*mb_ptr2len)(*pp); |
1929 return c; | |
1930 } | |
1931 | |
1932 /* | |
1933 * Get character at **pp and advance *pp to the next character. | |
1934 * Note: composing characters are returned as separate characters. | |
1935 */ | |
1936 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1937 mb_cptr2char_adv(char_u **pp) |
474 | 1938 { |
1939 int c; | |
1940 | |
1941 c = (*mb_ptr2char)(*pp); | |
1942 if (enc_utf8) | |
1943 *pp += utf_ptr2len(*pp); | |
1944 else | |
1945 *pp += (*mb_ptr2len)(*pp); | |
7 | 1946 return c; |
1947 } | |
1948 | |
1949 #if defined(FEAT_ARABIC) || defined(PROTO) | |
1950 /* | |
1951 * Check if the character pointed to by "p2" is a composing character when it | |
1952 * comes after "p1". For Arabic sometimes "ab" is replaced with "c", which | |
1953 * behaves like a composing character. | |
1954 */ | |
1955 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1956 utf_composinglike(char_u *p1, char_u *p2) |
7 | 1957 { |
1958 int c2; | |
1959 | |
1960 c2 = utf_ptr2char(p2); | |
1961 if (utf_iscomposing(c2)) | |
1962 return TRUE; | |
1963 if (!arabic_maycombine(c2)) | |
1964 return FALSE; | |
1965 return arabic_combine(utf_ptr2char(p1), c2); | |
1966 } | |
1967 #endif | |
1968 | |
1969 /* | |
1205 | 1970 * Convert a UTF-8 byte string to a wide character. Also get up to MAX_MCO |
7 | 1971 * composing characters. |
1972 */ | |
1973 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1974 utfc_ptr2char( |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
1975 char_u *p, |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1976 int *pcc) // return: composing chars, last one is 0 |
7 | 1977 { |
1978 int len; | |
1979 int c; | |
1980 int cc; | |
714 | 1981 int i = 0; |
7 | 1982 |
1983 c = utf_ptr2char(p); | |
474 | 1984 len = utf_ptr2len(p); |
714 | 1985 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
1986 // Only accept a composing char when the first char isn't illegal. |
7 | 1987 if ((len > 1 || *p < 0x80) |
1988 && p[len] >= 0x80 | |
1989 && UTF_COMPOSINGLIKE(p, p + len)) | |
1990 { | |
714 | 1991 cc = utf_ptr2char(p + len); |
1992 for (;;) | |
1993 { | |
1994 pcc[i++] = cc; | |
1995 if (i == MAX_MCO) | |
1996 break; | |
1997 len += utf_ptr2len(p + len); | |
1998 if (p[len] < 0x80 || !utf_iscomposing(cc = utf_ptr2char(p + len))) | |
1999 break; | |
2000 } | |
7 | 2001 } |
714 | 2002 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2003 if (i < MAX_MCO) // last composing char must be 0 |
714 | 2004 pcc[i] = 0; |
2005 | |
7 | 2006 return c; |
2007 } | |
2008 | |
2009 /* | |
1205 | 2010 * Convert a UTF-8 byte string to a wide character. Also get up to MAX_MCO |
7 | 2011 * composing characters. Use no more than p[maxlen]. |
2012 */ | |
2013 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
2014 utfc_ptr2char_len( |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
2015 char_u *p, |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2016 int *pcc, // return: composing chars, last one is 0 |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
2017 int maxlen) |
7 | 2018 { |
2019 int len; | |
2020 int c; | |
2021 int cc; | |
714 | 2022 int i = 0; |
7 | 2023 |
2024 c = utf_ptr2char(p); | |
474 | 2025 len = utf_ptr2len_len(p, maxlen); |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2026 // Only accept a composing char when the first char isn't illegal. |
7 | 2027 if ((len > 1 || *p < 0x80) |
2028 && len < maxlen | |
2029 && p[len] >= 0x80 | |
2030 && UTF_COMPOSINGLIKE(p, p + len)) | |
2031 { | |
714 | 2032 cc = utf_ptr2char(p + len); |
2033 for (;;) | |
2034 { | |
2035 pcc[i++] = cc; | |
2036 if (i == MAX_MCO) | |
2037 break; | |
2038 len += utf_ptr2len_len(p + len, maxlen - len); | |
2039 if (len >= maxlen | |
2040 || p[len] < 0x80 | |
2041 || !utf_iscomposing(cc = utf_ptr2char(p + len))) | |
2042 break; | |
2043 } | |
7 | 2044 } |
714 | 2045 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2046 if (i < MAX_MCO) // last composing char must be 0 |
714 | 2047 pcc[i] = 0; |
2048 | |
7 | 2049 return c; |
2050 } | |
2051 | |
2052 /* | |
2053 * Convert the character at screen position "off" to a sequence of bytes. | |
2054 * Includes the composing characters. | |
3549 | 2055 * "buf" must at least have the length MB_MAXBYTES + 1. |
2154
7c8c7c95a865
First step in the Vim 7.3 branch. Changed version numbers.
Bram Moolenaar <bram@zimbu.org>
parents:
2063
diff
changeset
|
2056 * Only to be used when ScreenLinesUC[off] != 0. |
7 | 2057 * Returns the produced number of bytes. |
2058 */ | |
2059 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
2060 utfc_char2bytes(int off, char_u *buf) |
7 | 2061 { |
2062 int len; | |
714 | 2063 int i; |
7 | 2064 |
2065 len = utf_char2bytes(ScreenLinesUC[off], buf); | |
714 | 2066 for (i = 0; i < Screen_mco; ++i) |
7 | 2067 { |
714 | 2068 if (ScreenLinesC[i][off] == 0) |
2069 break; | |
2070 len += utf_char2bytes(ScreenLinesC[i][off], buf + len); | |
7 | 2071 } |
2072 return len; | |
2073 } | |
2074 | |
2075 /* | |
2076 * Get the length of a UTF-8 byte sequence, not including any following | |
2077 * composing characters. | |
2078 * Returns 0 for "". | |
2079 * Returns 1 for an illegal byte sequence. | |
2080 */ | |
2081 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
2082 utf_ptr2len(char_u *p) |
7 | 2083 { |
2084 int len; | |
2085 int i; | |
2086 | |
2087 if (*p == NUL) | |
2088 return 0; | |
2089 len = utf8len_tab[*p]; | |
2090 for (i = 1; i < len; ++i) | |
2091 if ((p[i] & 0xc0) != 0x80) | |
2092 return 1; | |
2093 return len; | |
2094 } | |
2095 | |
2096 /* | |
2097 * Return length of UTF-8 character, obtained from the first byte. | |
2098 * "b" must be between 0 and 255! | |
2015 | 2099 * Returns 1 for an invalid first byte value. |
7 | 2100 */ |
2101 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
2102 utf_byte2len(int b) |
7 | 2103 { |
2104 return utf8len_tab[b]; | |
2105 } | |
2106 | |
2107 /* | |
2108 * Get the length of UTF-8 byte sequence "p[size]". Does not include any | |
2109 * following composing characters. | |
2110 * Returns 1 for "". | |
1487 | 2111 * Returns 1 for an illegal byte sequence (also in incomplete byte seq.). |
7 | 2112 * Returns number > "size" for an incomplete byte sequence. |
2015 | 2113 * Never returns zero. |
7 | 2114 */ |
2115 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
2116 utf_ptr2len_len(char_u *p, int size) |
7 | 2117 { |
2118 int len; | |
2119 int i; | |
1487 | 2120 int m; |
7 | 2121 |
2015 | 2122 len = utf8len_tab[*p]; |
2123 if (len == 1) | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2124 return 1; // NUL, ascii or illegal lead byte |
7 | 2125 if (len > size) |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2126 m = size; // incomplete byte sequence. |
2015 | 2127 else |
2128 m = len; | |
1487 | 2129 for (i = 1; i < m; ++i) |
7 | 2130 if ((p[i] & 0xc0) != 0x80) |
2131 return 1; | |
2132 return len; | |
2133 } | |
2134 | |
2135 /* | |
2136 * Return the number of bytes the UTF-8 encoding of the character at "p" takes. | |
2137 * This includes following composing characters. | |
29761
0cea0cdcce92
patch 9.0.0220: invalid memory access with for loop over NULL string
Bram Moolenaar <Bram@vim.org>
parents:
29672
diff
changeset
|
2138 * Returns zero for NUL. |
7 | 2139 */ |
2140 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
2141 utfc_ptr2len(char_u *p) |
7 | 2142 { |
2143 int len; | |
318 | 2144 int b0 = *p; |
7 | 2145 #ifdef FEAT_ARABIC |
2146 int prevlen; | |
2147 #endif | |
2148 | |
318 | 2149 if (b0 == NUL) |
7 | 2150 return 0; |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2151 if (b0 < 0x80 && p[1] < 0x80) // be quick for ASCII |
7 | 2152 return 1; |
2153 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2154 // Skip over first UTF-8 char, stopping at a NUL byte. |
474 | 2155 len = utf_ptr2len(p); |
7 | 2156 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2157 // Check for illegal byte. |
318 | 2158 if (len == 1 && b0 >= 0x80) |
7 | 2159 return 1; |
2160 | |
2161 /* | |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2162 * Check for composing characters. We can handle only the first six, but |
7 | 2163 * skip all of them (otherwise the cursor would get stuck). |
2164 */ | |
2165 #ifdef FEAT_ARABIC | |
2166 prevlen = 0; | |
2167 #endif | |
2168 for (;;) | |
2169 { | |
2170 if (p[len] < 0x80 || !UTF_COMPOSINGLIKE(p + prevlen, p + len)) | |
2171 return len; | |
2172 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2173 // Skip over composing char |
7 | 2174 #ifdef FEAT_ARABIC |
2175 prevlen = len; | |
2176 #endif | |
474 | 2177 len += utf_ptr2len(p + len); |
7 | 2178 } |
2179 } | |
2180 | |
2181 /* | |
2182 * Return the number of bytes the UTF-8 encoding of the character at "p[size]" | |
2183 * takes. This includes following composing characters. | |
1903 | 2184 * Returns 0 for an empty string. |
7 | 2185 * Returns 1 for an illegal char or an incomplete byte sequence. |
2186 */ | |
2187 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
2188 utfc_ptr2len_len(char_u *p, int size) |
7 | 2189 { |
2190 int len; | |
2191 #ifdef FEAT_ARABIC | |
2192 int prevlen; | |
2193 #endif | |
2194 | |
1903 | 2195 if (size < 1 || *p == NUL) |
7 | 2196 return 0; |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2197 if (p[0] < 0x80 && (size == 1 || p[1] < 0x80)) // be quick for ASCII |
7 | 2198 return 1; |
2199 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2200 // Skip over first UTF-8 char, stopping at a NUL byte. |
474 | 2201 len = utf_ptr2len_len(p, size); |
7 | 2202 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2203 // Check for illegal byte and incomplete byte sequence. |
7 | 2204 if ((len == 1 && p[0] >= 0x80) || len > size) |
2205 return 1; | |
2206 | |
2207 /* | |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2208 * Check for composing characters. We can handle only the first six, but |
7 | 2209 * skip all of them (otherwise the cursor would get stuck). |
2210 */ | |
2211 #ifdef FEAT_ARABIC | |
2212 prevlen = 0; | |
2213 #endif | |
2214 while (len < size) | |
2215 { | |
1658 | 2216 int len_next_char; |
2217 | |
2218 if (p[len] < 0x80) | |
2219 break; | |
2220 | |
2221 /* | |
2222 * Next character length should not go beyond size to ensure that | |
2223 * UTF_COMPOSINGLIKE(...) does not read beyond size. | |
2224 */ | |
2225 len_next_char = utf_ptr2len_len(p + len, size - len); | |
2226 if (len_next_char > size - len) | |
2227 break; | |
2228 | |
2229 if (!UTF_COMPOSINGLIKE(p + prevlen, p + len)) | |
7 | 2230 break; |
2231 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2232 // Skip over composing char |
7 | 2233 #ifdef FEAT_ARABIC |
2234 prevlen = len; | |
2235 #endif | |
1658 | 2236 len += len_next_char; |
7 | 2237 } |
2238 return len; | |
2239 } | |
2240 | |
2241 /* | |
2242 * Return the number of bytes the UTF-8 encoding of character "c" takes. | |
2243 * This does not include composing characters. | |
2244 */ | |
2245 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
2246 utf_char2len(int c) |
7 | 2247 { |
2248 if (c < 0x80) | |
2249 return 1; | |
2250 if (c < 0x800) | |
2251 return 2; | |
2252 if (c < 0x10000) | |
2253 return 3; | |
2254 if (c < 0x200000) | |
2255 return 4; | |
2256 if (c < 0x4000000) | |
2257 return 5; | |
2258 return 6; | |
2259 } | |
2260 | |
2261 /* | |
2262 * Convert Unicode character "c" to UTF-8 string in "buf[]". | |
2263 * Returns the number of bytes. | |
2264 */ | |
2265 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
2266 utf_char2bytes(int c, char_u *buf) |
7 | 2267 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2268 if (c < 0x80) // 7 bits |
7 | 2269 { |
2270 buf[0] = c; | |
2271 return 1; | |
2272 } | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2273 if (c < 0x800) // 11 bits |
7 | 2274 { |
2275 buf[0] = 0xc0 + ((unsigned)c >> 6); | |
2276 buf[1] = 0x80 + (c & 0x3f); | |
2277 return 2; | |
2278 } | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2279 if (c < 0x10000) // 16 bits |
7 | 2280 { |
2281 buf[0] = 0xe0 + ((unsigned)c >> 12); | |
2282 buf[1] = 0x80 + (((unsigned)c >> 6) & 0x3f); | |
2283 buf[2] = 0x80 + (c & 0x3f); | |
2284 return 3; | |
2285 } | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2286 if (c < 0x200000) // 21 bits |
7 | 2287 { |
2288 buf[0] = 0xf0 + ((unsigned)c >> 18); | |
2289 buf[1] = 0x80 + (((unsigned)c >> 12) & 0x3f); | |
2290 buf[2] = 0x80 + (((unsigned)c >> 6) & 0x3f); | |
2291 buf[3] = 0x80 + (c & 0x3f); | |
2292 return 4; | |
2293 } | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2294 if (c < 0x4000000) // 26 bits |
7 | 2295 { |
2296 buf[0] = 0xf8 + ((unsigned)c >> 24); | |
2297 buf[1] = 0x80 + (((unsigned)c >> 18) & 0x3f); | |
2298 buf[2] = 0x80 + (((unsigned)c >> 12) & 0x3f); | |
2299 buf[3] = 0x80 + (((unsigned)c >> 6) & 0x3f); | |
2300 buf[4] = 0x80 + (c & 0x3f); | |
2301 return 5; | |
2302 } | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2303 // 31 bits |
7 | 2304 buf[0] = 0xfc + ((unsigned)c >> 30); |
2305 buf[1] = 0x80 + (((unsigned)c >> 24) & 0x3f); | |
2306 buf[2] = 0x80 + (((unsigned)c >> 18) & 0x3f); | |
2307 buf[3] = 0x80 + (((unsigned)c >> 12) & 0x3f); | |
2308 buf[4] = 0x80 + (((unsigned)c >> 6) & 0x3f); | |
2309 buf[5] = 0x80 + (c & 0x3f); | |
2310 return 6; | |
2311 } | |
2312 | |
12210
b9b06aa0b6d9
patch 8.0.0985: libvterm has its own idea of character width
Christian Brabandt <cb@256bit.org>
parents:
11539
diff
changeset
|
2313 #if defined(FEAT_TERMINAL) || defined(PROTO) |
b9b06aa0b6d9
patch 8.0.0985: libvterm has its own idea of character width
Christian Brabandt <cb@256bit.org>
parents:
11539
diff
changeset
|
2314 /* |
b9b06aa0b6d9
patch 8.0.0985: libvterm has its own idea of character width
Christian Brabandt <cb@256bit.org>
parents:
11539
diff
changeset
|
2315 * utf_iscomposing() with different argument type for libvterm. |
b9b06aa0b6d9
patch 8.0.0985: libvterm has its own idea of character width
Christian Brabandt <cb@256bit.org>
parents:
11539
diff
changeset
|
2316 */ |
b9b06aa0b6d9
patch 8.0.0985: libvterm has its own idea of character width
Christian Brabandt <cb@256bit.org>
parents:
11539
diff
changeset
|
2317 int |
12269
d2373927d76d
patch 8.0.1014: old compiler doesn't know uint32_t
Christian Brabandt <cb@256bit.org>
parents:
12210
diff
changeset
|
2318 utf_iscomposing_uint(UINT32_T c) |
12210
b9b06aa0b6d9
patch 8.0.0985: libvterm has its own idea of character width
Christian Brabandt <cb@256bit.org>
parents:
11539
diff
changeset
|
2319 { |
b9b06aa0b6d9
patch 8.0.0985: libvterm has its own idea of character width
Christian Brabandt <cb@256bit.org>
parents:
11539
diff
changeset
|
2320 return utf_iscomposing((int)c); |
b9b06aa0b6d9
patch 8.0.0985: libvterm has its own idea of character width
Christian Brabandt <cb@256bit.org>
parents:
11539
diff
changeset
|
2321 } |
b9b06aa0b6d9
patch 8.0.0985: libvterm has its own idea of character width
Christian Brabandt <cb@256bit.org>
parents:
11539
diff
changeset
|
2322 #endif |
b9b06aa0b6d9
patch 8.0.0985: libvterm has its own idea of character width
Christian Brabandt <cb@256bit.org>
parents:
11539
diff
changeset
|
2323 |
7 | 2324 /* |
2325 * Return TRUE if "c" is a composing UTF-8 character. This means it will be | |
2326 * drawn on top of the preceding character. | |
2327 * Based on code from Markus Kuhn. | |
2328 */ | |
2329 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
2330 utf_iscomposing(int c) |
7 | 2331 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2332 // Sorted list of non-overlapping intervals. |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2333 // Generated by ../runtime/tools/unicode.vim. |
7 | 2334 static struct interval combining[] = |
2335 { | |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2336 {0x0300, 0x036f}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2337 {0x0483, 0x0489}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2338 {0x0591, 0x05bd}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2339 {0x05bf, 0x05bf}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2340 {0x05c1, 0x05c2}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2341 {0x05c4, 0x05c5}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2342 {0x05c7, 0x05c7}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2343 {0x0610, 0x061a}, |
6495 | 2344 {0x064b, 0x065f}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2345 {0x0670, 0x0670}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2346 {0x06d6, 0x06dc}, |
6495 | 2347 {0x06df, 0x06e4}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2348 {0x06e7, 0x06e8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2349 {0x06ea, 0x06ed}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2350 {0x0711, 0x0711}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2351 {0x0730, 0x074a}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2352 {0x07a6, 0x07b0}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2353 {0x07eb, 0x07f3}, |
14333
65ded7626193
patch 8.1.0182: Unicode standard was updated
Christian Brabandt <cb@256bit.org>
parents:
14075
diff
changeset
|
2354 {0x07fd, 0x07fd}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2355 {0x0816, 0x0819}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2356 {0x081b, 0x0823}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2357 {0x0825, 0x0827}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2358 {0x0829, 0x082d}, |
6495 | 2359 {0x0859, 0x085b}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2360 {0x0898, 0x089f}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2361 {0x08ca, 0x08e1}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2362 {0x08e3, 0x0902}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2363 {0x093a, 0x093a}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2364 {0x093c, 0x093c}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2365 {0x0941, 0x0948}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2366 {0x094d, 0x094d}, |
6495 | 2367 {0x0951, 0x0957}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2368 {0x0962, 0x0963}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2369 {0x0981, 0x0981}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2370 {0x09bc, 0x09bc}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2371 {0x09c1, 0x09c4}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2372 {0x09cd, 0x09cd}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2373 {0x09e2, 0x09e3}, |
14333
65ded7626193
patch 8.1.0182: Unicode standard was updated
Christian Brabandt <cb@256bit.org>
parents:
14075
diff
changeset
|
2374 {0x09fe, 0x09fe}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2375 {0x0a01, 0x0a02}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2376 {0x0a3c, 0x0a3c}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2377 {0x0a41, 0x0a42}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2378 {0x0a47, 0x0a48}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2379 {0x0a4b, 0x0a4d}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2380 {0x0a51, 0x0a51}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2381 {0x0a70, 0x0a71}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2382 {0x0a75, 0x0a75}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2383 {0x0a81, 0x0a82}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2384 {0x0abc, 0x0abc}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2385 {0x0ac1, 0x0ac5}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2386 {0x0ac7, 0x0ac8}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2387 {0x0acd, 0x0acd}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2388 {0x0ae2, 0x0ae3}, |
11539
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2389 {0x0afa, 0x0aff}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2390 {0x0b01, 0x0b01}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2391 {0x0b3c, 0x0b3c}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2392 {0x0b3f, 0x0b3f}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2393 {0x0b41, 0x0b44}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2394 {0x0b4d, 0x0b4d}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2395 {0x0b55, 0x0b56}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2396 {0x0b62, 0x0b63}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2397 {0x0b82, 0x0b82}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2398 {0x0bc0, 0x0bc0}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2399 {0x0bcd, 0x0bcd}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2400 {0x0c00, 0x0c00}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2401 {0x0c04, 0x0c04}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2402 {0x0c3c, 0x0c3c}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2403 {0x0c3e, 0x0c40}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2404 {0x0c46, 0x0c48}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2405 {0x0c4a, 0x0c4d}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2406 {0x0c55, 0x0c56}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2407 {0x0c62, 0x0c63}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2408 {0x0c81, 0x0c81}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2409 {0x0cbc, 0x0cbc}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2410 {0x0cbf, 0x0cbf}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2411 {0x0cc6, 0x0cc6}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2412 {0x0ccc, 0x0ccd}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2413 {0x0ce2, 0x0ce3}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2414 {0x0d00, 0x0d01}, |
11539
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2415 {0x0d3b, 0x0d3c}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2416 {0x0d41, 0x0d44}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2417 {0x0d4d, 0x0d4d}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2418 {0x0d62, 0x0d63}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2419 {0x0d81, 0x0d81}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2420 {0x0dca, 0x0dca}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2421 {0x0dd2, 0x0dd4}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2422 {0x0dd6, 0x0dd6}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2423 {0x0e31, 0x0e31}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2424 {0x0e34, 0x0e3a}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2425 {0x0e47, 0x0e4e}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2426 {0x0eb1, 0x0eb1}, |
16304
c83169bdb290
patch 8.1.1157: Unicode tables are out of date
Bram Moolenaar <Bram@vim.org>
parents:
16302
diff
changeset
|
2427 {0x0eb4, 0x0ebc}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2428 {0x0ec8, 0x0ece}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2429 {0x0f18, 0x0f19}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2430 {0x0f35, 0x0f35}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2431 {0x0f37, 0x0f37}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2432 {0x0f39, 0x0f39}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2433 {0x0f71, 0x0f7e}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2434 {0x0f80, 0x0f84}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2435 {0x0f86, 0x0f87}, |
6495 | 2436 {0x0f8d, 0x0f97}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2437 {0x0f99, 0x0fbc}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2438 {0x0fc6, 0x0fc6}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2439 {0x102d, 0x1030}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2440 {0x1032, 0x1037}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2441 {0x1039, 0x103a}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2442 {0x103d, 0x103e}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2443 {0x1058, 0x1059}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2444 {0x105e, 0x1060}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2445 {0x1071, 0x1074}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2446 {0x1082, 0x1082}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2447 {0x1085, 0x1086}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2448 {0x108d, 0x108d}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2449 {0x109d, 0x109d}, |
6495 | 2450 {0x135d, 0x135f}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2451 {0x1712, 0x1714}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2452 {0x1732, 0x1733}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2453 {0x1752, 0x1753}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2454 {0x1772, 0x1773}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2455 {0x17b4, 0x17b5}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2456 {0x17b7, 0x17bd}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2457 {0x17c6, 0x17c6}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2458 {0x17c9, 0x17d3}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2459 {0x17dd, 0x17dd}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2460 {0x180b, 0x180d}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2461 {0x180f, 0x180f}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
2462 {0x1885, 0x1886}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2463 {0x18a9, 0x18a9}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2464 {0x1920, 0x1922}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2465 {0x1927, 0x1928}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2466 {0x1932, 0x1932}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2467 {0x1939, 0x193b}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2468 {0x1a17, 0x1a18}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2469 {0x1a1b, 0x1a1b}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2470 {0x1a56, 0x1a56}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2471 {0x1a58, 0x1a5e}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2472 {0x1a60, 0x1a60}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2473 {0x1a62, 0x1a62}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2474 {0x1a65, 0x1a6c}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2475 {0x1a73, 0x1a7c}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2476 {0x1a7f, 0x1a7f}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2477 {0x1ab0, 0x1ace}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2478 {0x1b00, 0x1b03}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2479 {0x1b34, 0x1b34}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2480 {0x1b36, 0x1b3a}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2481 {0x1b3c, 0x1b3c}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2482 {0x1b42, 0x1b42}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2483 {0x1b6b, 0x1b73}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2484 {0x1b80, 0x1b81}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2485 {0x1ba2, 0x1ba5}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2486 {0x1ba8, 0x1ba9}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2487 {0x1bab, 0x1bad}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2488 {0x1be6, 0x1be6}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2489 {0x1be8, 0x1be9}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2490 {0x1bed, 0x1bed}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2491 {0x1bef, 0x1bf1}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2492 {0x1c2c, 0x1c33}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2493 {0x1c36, 0x1c37}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2494 {0x1cd0, 0x1cd2}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2495 {0x1cd4, 0x1ce0}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2496 {0x1ce2, 0x1ce8}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2497 {0x1ced, 0x1ced}, |
16304
c83169bdb290
patch 8.1.1157: Unicode tables are out of date
Bram Moolenaar <Bram@vim.org>
parents:
16302
diff
changeset
|
2498 {0x1cf4, 0x1cf4}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2499 {0x1cf8, 0x1cf9}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2500 {0x1dc0, 0x1dff}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2501 {0x20d0, 0x20f0}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2502 {0x2cef, 0x2cf1}, |
6495 | 2503 {0x2d7f, 0x2d7f}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2504 {0x2de0, 0x2dff}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2505 {0x302a, 0x302d}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2506 {0x3099, 0x309a}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2507 {0xa66f, 0xa672}, |
6495 | 2508 {0xa674, 0xa67d}, |
6864 | 2509 {0xa69e, 0xa69f}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2510 {0xa6f0, 0xa6f1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2511 {0xa802, 0xa802}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2512 {0xa806, 0xa806}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2513 {0xa80b, 0xa80b}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2514 {0xa825, 0xa826}, |
25062
042560a16d4e
patch 8.2.3068: Unicode tables are slightly outdated
Bram Moolenaar <Bram@vim.org>
parents:
24912
diff
changeset
|
2515 {0xa82c, 0xa82c}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2516 {0xa8c4, 0xa8c5}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2517 {0xa8e0, 0xa8f1}, |
14333
65ded7626193
patch 8.1.0182: Unicode standard was updated
Christian Brabandt <cb@256bit.org>
parents:
14075
diff
changeset
|
2518 {0xa8ff, 0xa8ff}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2519 {0xa926, 0xa92d}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2520 {0xa947, 0xa951}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2521 {0xa980, 0xa982}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2522 {0xa9b3, 0xa9b3}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2523 {0xa9b6, 0xa9b9}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2524 {0xa9bc, 0xa9bd}, |
6495 | 2525 {0xa9e5, 0xa9e5}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2526 {0xaa29, 0xaa2e}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2527 {0xaa31, 0xaa32}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2528 {0xaa35, 0xaa36}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2529 {0xaa43, 0xaa43}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2530 {0xaa4c, 0xaa4c}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2531 {0xaa7c, 0xaa7c}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2532 {0xaab0, 0xaab0}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2533 {0xaab2, 0xaab4}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2534 {0xaab7, 0xaab8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2535 {0xaabe, 0xaabf}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2536 {0xaac1, 0xaac1}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2537 {0xaaec, 0xaaed}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2538 {0xaaf6, 0xaaf6}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2539 {0xabe5, 0xabe5}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2540 {0xabe8, 0xabe8}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2541 {0xabed, 0xabed}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2542 {0xfb1e, 0xfb1e}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2543 {0xfe00, 0xfe0f}, |
6864 | 2544 {0xfe20, 0xfe2f}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2545 {0x101fd, 0x101fd}, |
6495 | 2546 {0x102e0, 0x102e0}, |
2547 {0x10376, 0x1037a}, | |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2548 {0x10a01, 0x10a03}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2549 {0x10a05, 0x10a06}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2550 {0x10a0c, 0x10a0f}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2551 {0x10a38, 0x10a3a}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2552 {0x10a3f, 0x10a3f}, |
6495 | 2553 {0x10ae5, 0x10ae6}, |
14333
65ded7626193
patch 8.1.0182: Unicode standard was updated
Christian Brabandt <cb@256bit.org>
parents:
14075
diff
changeset
|
2554 {0x10d24, 0x10d27}, |
25062
042560a16d4e
patch 8.2.3068: Unicode tables are slightly outdated
Bram Moolenaar <Bram@vim.org>
parents:
24912
diff
changeset
|
2555 {0x10eab, 0x10eac}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2556 {0x10efd, 0x10eff}, |
14333
65ded7626193
patch 8.1.0182: Unicode standard was updated
Christian Brabandt <cb@256bit.org>
parents:
14075
diff
changeset
|
2557 {0x10f46, 0x10f50}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2558 {0x10f82, 0x10f85}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2559 {0x11001, 0x11001}, |
6495 | 2560 {0x11038, 0x11046}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2561 {0x11070, 0x11070}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2562 {0x11073, 0x11074}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2563 {0x1107f, 0x11081}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2564 {0x110b3, 0x110b6}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2565 {0x110b9, 0x110ba}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2566 {0x110c2, 0x110c2}, |
6495 | 2567 {0x11100, 0x11102}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2568 {0x11127, 0x1112b}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2569 {0x1112d, 0x11134}, |
6495 | 2570 {0x11173, 0x11173}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2571 {0x11180, 0x11181}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2572 {0x111b6, 0x111be}, |
14333
65ded7626193
patch 8.1.0182: Unicode standard was updated
Christian Brabandt <cb@256bit.org>
parents:
14075
diff
changeset
|
2573 {0x111c9, 0x111cc}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2574 {0x111cf, 0x111cf}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2575 {0x1122f, 0x11231}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2576 {0x11234, 0x11234}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2577 {0x11236, 0x11237}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
2578 {0x1123e, 0x1123e}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2579 {0x11241, 0x11241}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2580 {0x112df, 0x112df}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2581 {0x112e3, 0x112ea}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2582 {0x11300, 0x11301}, |
14333
65ded7626193
patch 8.1.0182: Unicode standard was updated
Christian Brabandt <cb@256bit.org>
parents:
14075
diff
changeset
|
2583 {0x1133b, 0x1133c}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2584 {0x11340, 0x11340}, |
6495 | 2585 {0x11366, 0x1136c}, |
2586 {0x11370, 0x11374}, | |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2587 {0x11438, 0x1143f}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2588 {0x11442, 0x11444}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2589 {0x11446, 0x11446}, |
14333
65ded7626193
patch 8.1.0182: Unicode standard was updated
Christian Brabandt <cb@256bit.org>
parents:
14075
diff
changeset
|
2590 {0x1145e, 0x1145e}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2591 {0x114b3, 0x114b8}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2592 {0x114ba, 0x114ba}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2593 {0x114bf, 0x114c0}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2594 {0x114c2, 0x114c3}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2595 {0x115b2, 0x115b5}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2596 {0x115bc, 0x115bd}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2597 {0x115bf, 0x115c0}, |
6864 | 2598 {0x115dc, 0x115dd}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2599 {0x11633, 0x1163a}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2600 {0x1163d, 0x1163d}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2601 {0x1163f, 0x11640}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2602 {0x116ab, 0x116ab}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2603 {0x116ad, 0x116ad}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2604 {0x116b0, 0x116b5}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2605 {0x116b7, 0x116b7}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2606 {0x1171d, 0x1171f}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2607 {0x11722, 0x11725}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2608 {0x11727, 0x1172b}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2609 {0x1182f, 0x11837}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2610 {0x11839, 0x1183a}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2611 {0x1193b, 0x1193c}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2612 {0x1193e, 0x1193e}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2613 {0x11943, 0x11943}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2614 {0x119d4, 0x119d7}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2615 {0x119da, 0x119db}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2616 {0x119e0, 0x119e0}, |
11539
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2617 {0x11a01, 0x11a0a}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2618 {0x11a33, 0x11a38}, |
11539
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2619 {0x11a3b, 0x11a3e}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2620 {0x11a47, 0x11a47}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2621 {0x11a51, 0x11a56}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2622 {0x11a59, 0x11a5b}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2623 {0x11a8a, 0x11a96}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2624 {0x11a98, 0x11a99}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2625 {0x11c30, 0x11c36}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2626 {0x11c38, 0x11c3d}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2627 {0x11c3f, 0x11c3f}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
2628 {0x11c92, 0x11ca7}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2629 {0x11caa, 0x11cb0}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2630 {0x11cb2, 0x11cb3}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2631 {0x11cb5, 0x11cb6}, |
11539
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2632 {0x11d31, 0x11d36}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2633 {0x11d3a, 0x11d3a}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2634 {0x11d3c, 0x11d3d}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2635 {0x11d3f, 0x11d45}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2636 {0x11d47, 0x11d47}, |
14333
65ded7626193
patch 8.1.0182: Unicode standard was updated
Christian Brabandt <cb@256bit.org>
parents:
14075
diff
changeset
|
2637 {0x11d90, 0x11d91}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2638 {0x11d95, 0x11d95}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2639 {0x11d97, 0x11d97}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2640 {0x11ef3, 0x11ef4}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2641 {0x11f00, 0x11f01}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2642 {0x11f36, 0x11f3a}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2643 {0x11f40, 0x11f40}, |
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2644 {0x11f42, 0x11f42}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2645 {0x13440, 0x13440}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2646 {0x13447, 0x13455}, |
6495 | 2647 {0x16af0, 0x16af4}, |
2648 {0x16b30, 0x16b36}, | |
16304
c83169bdb290
patch 8.1.1157: Unicode tables are out of date
Bram Moolenaar <Bram@vim.org>
parents:
16302
diff
changeset
|
2649 {0x16f4f, 0x16f4f}, |
6495 | 2650 {0x16f8f, 0x16f92}, |
25062
042560a16d4e
patch 8.2.3068: Unicode tables are slightly outdated
Bram Moolenaar <Bram@vim.org>
parents:
24912
diff
changeset
|
2651 {0x16fe4, 0x16fe4}, |
6495 | 2652 {0x1bc9d, 0x1bc9e}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2653 {0x1cf00, 0x1cf2d}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2654 {0x1cf30, 0x1cf46}, |
30663
65c35212c772
patch 9.0.0666: spacing-combining characters handled as composing
Bram Moolenaar <Bram@vim.org>
parents:
30503
diff
changeset
|
2655 {0x1d167, 0x1d169}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2656 {0x1d17b, 0x1d182}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2657 {0x1d185, 0x1d18b}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2658 {0x1d1aa, 0x1d1ad}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2659 {0x1d242, 0x1d244}, |
6864 | 2660 {0x1da00, 0x1da36}, |
2661 {0x1da3b, 0x1da6c}, | |
2662 {0x1da75, 0x1da75}, | |
2663 {0x1da84, 0x1da84}, | |
2664 {0x1da9b, 0x1da9f}, | |
2665 {0x1daa1, 0x1daaf}, | |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
2666 {0x1e000, 0x1e006}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
2667 {0x1e008, 0x1e018}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
2668 {0x1e01b, 0x1e021}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
2669 {0x1e023, 0x1e024}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
2670 {0x1e026, 0x1e02a}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2671 {0x1e08f, 0x1e08f}, |
16304
c83169bdb290
patch 8.1.1157: Unicode tables are out of date
Bram Moolenaar <Bram@vim.org>
parents:
16302
diff
changeset
|
2672 {0x1e130, 0x1e136}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2673 {0x1e2ae, 0x1e2ae}, |
16304
c83169bdb290
patch 8.1.1157: Unicode tables are out of date
Bram Moolenaar <Bram@vim.org>
parents:
16302
diff
changeset
|
2674 {0x1e2ec, 0x1e2ef}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2675 {0x1e4ec, 0x1e4ef}, |
6495 | 2676 {0x1e8d0, 0x1e8d6}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
2677 {0x1e944, 0x1e94a}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
2678 {0xe0100, 0xe01ef} |
7 | 2679 }; |
2680 | |
2681 return intable(combining, sizeof(combining), c); | |
2682 } | |
2683 | |
2684 /* | |
2685 * Return TRUE for characters that can be displayed in a normal way. | |
2686 * Only for characters of 0x100 and above! | |
2687 */ | |
2688 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
2689 utf_printable(int c) |
7 | 2690 { |
2691 #ifdef USE_WCHAR_FUNCTIONS | |
2692 /* | |
2693 * Assume the iswprint() library function works better than our own stuff. | |
2694 */ | |
2695 return iswprint(c); | |
2696 #else | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2697 // Sorted list of non-overlapping intervals. |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2698 // 0xd800-0xdfff is reserved for UTF-16, actually illegal. |
7 | 2699 static struct interval nonprint[] = |
2700 { | |
2701 {0x070f, 0x070f}, {0x180b, 0x180e}, {0x200b, 0x200f}, {0x202a, 0x202e}, | |
26075
31bdc22000a1
patch 8.2.3571: some unicode control characters are considered printable
Bram Moolenaar <Bram@vim.org>
parents:
26022
diff
changeset
|
2702 {0x2060, 0x206f}, {0xd800, 0xdfff}, {0xfeff, 0xfeff}, {0xfff9, 0xfffb}, |
7 | 2703 {0xfffe, 0xffff} |
2704 }; | |
2705 | |
2706 return !intable(nonprint, sizeof(nonprint), c); | |
2707 #endif | |
2708 } | |
2709 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2710 // Sorted list of non-overlapping intervals of all Emoji characters, |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2711 // based on http://unicode.org/emoji/charts/emoji-list.html |
21971
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
2712 // Generated by ../runtime/tools/unicode.vim. |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
2713 // Excludes 0x00a9 and 0x00ae because they are considered latin1. |
8819
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2714 static struct interval emoji_all[] = |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2715 { |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2716 {0x203c, 0x203c}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2717 {0x2049, 0x2049}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2718 {0x2122, 0x2122}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2719 {0x2139, 0x2139}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2720 {0x2194, 0x2199}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2721 {0x21a9, 0x21aa}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2722 {0x231a, 0x231b}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2723 {0x2328, 0x2328}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2724 {0x23cf, 0x23cf}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2725 {0x23e9, 0x23f3}, |
11539
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2726 {0x23f8, 0x23fa}, |
8819
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2727 {0x24c2, 0x24c2}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2728 {0x25aa, 0x25ab}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2729 {0x25b6, 0x25b6}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2730 {0x25c0, 0x25c0}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2731 {0x25fb, 0x25fe}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2732 {0x2600, 0x2604}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2733 {0x260e, 0x260e}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2734 {0x2611, 0x2611}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2735 {0x2614, 0x2615}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2736 {0x2618, 0x2618}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2737 {0x261d, 0x261d}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2738 {0x2620, 0x2620}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2739 {0x2622, 0x2623}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2740 {0x2626, 0x2626}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2741 {0x262a, 0x262a}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2742 {0x262e, 0x262f}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2743 {0x2638, 0x263a}, |
11539
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2744 {0x2640, 0x2640}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2745 {0x2642, 0x2642}, |
8819
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2746 {0x2648, 0x2653}, |
14333
65ded7626193
patch 8.1.0182: Unicode standard was updated
Christian Brabandt <cb@256bit.org>
parents:
14075
diff
changeset
|
2747 {0x265f, 0x2660}, |
8819
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2748 {0x2663, 0x2663}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2749 {0x2665, 0x2666}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2750 {0x2668, 0x2668}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2751 {0x267b, 0x267b}, |
14333
65ded7626193
patch 8.1.0182: Unicode standard was updated
Christian Brabandt <cb@256bit.org>
parents:
14075
diff
changeset
|
2752 {0x267e, 0x267f}, |
11539
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2753 {0x2692, 0x2697}, |
8819
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2754 {0x2699, 0x2699}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2755 {0x269b, 0x269c}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2756 {0x26a0, 0x26a1}, |
25062
042560a16d4e
patch 8.2.3068: Unicode tables are slightly outdated
Bram Moolenaar <Bram@vim.org>
parents:
24912
diff
changeset
|
2757 {0x26a7, 0x26a7}, |
8819
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2758 {0x26aa, 0x26ab}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2759 {0x26b0, 0x26b1}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2760 {0x26bd, 0x26be}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2761 {0x26c4, 0x26c5}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2762 {0x26c8, 0x26c8}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2763 {0x26ce, 0x26cf}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2764 {0x26d1, 0x26d1}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2765 {0x26d3, 0x26d4}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2766 {0x26e9, 0x26ea}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2767 {0x26f0, 0x26f5}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2768 {0x26f7, 0x26fa}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2769 {0x26fd, 0x26fd}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2770 {0x2702, 0x2702}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2771 {0x2705, 0x2705}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2772 {0x2708, 0x270d}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2773 {0x270f, 0x270f}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2774 {0x2712, 0x2712}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2775 {0x2714, 0x2714}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2776 {0x2716, 0x2716}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2777 {0x271d, 0x271d}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2778 {0x2721, 0x2721}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2779 {0x2728, 0x2728}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2780 {0x2733, 0x2734}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2781 {0x2744, 0x2744}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2782 {0x2747, 0x2747}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2783 {0x274c, 0x274c}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2784 {0x274e, 0x274e}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2785 {0x2753, 0x2755}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2786 {0x2757, 0x2757}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2787 {0x2763, 0x2764}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2788 {0x2795, 0x2797}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2789 {0x27a1, 0x27a1}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2790 {0x27b0, 0x27b0}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2791 {0x27bf, 0x27bf}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2792 {0x2934, 0x2935}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2793 {0x2b05, 0x2b07}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2794 {0x2b1b, 0x2b1c}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2795 {0x2b50, 0x2b50}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2796 {0x2b55, 0x2b55}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2797 {0x3030, 0x3030}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2798 {0x303d, 0x303d}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2799 {0x3297, 0x3297}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2800 {0x3299, 0x3299}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2801 {0x1f004, 0x1f004}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2802 {0x1f0cf, 0x1f0cf}, |
25062
042560a16d4e
patch 8.2.3068: Unicode tables are slightly outdated
Bram Moolenaar <Bram@vim.org>
parents:
24912
diff
changeset
|
2803 {0x1f170, 0x1f171}, |
042560a16d4e
patch 8.2.3068: Unicode tables are slightly outdated
Bram Moolenaar <Bram@vim.org>
parents:
24912
diff
changeset
|
2804 {0x1f17e, 0x1f17f}, |
8819
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2805 {0x1f18e, 0x1f18e}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2806 {0x1f191, 0x1f19a}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2807 {0x1f1e6, 0x1f1ff}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2808 {0x1f201, 0x1f202}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2809 {0x1f21a, 0x1f21a}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2810 {0x1f22f, 0x1f22f}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2811 {0x1f232, 0x1f23a}, |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2812 {0x1f250, 0x1f251}, |
11539
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2813 {0x1f300, 0x1f321}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2814 {0x1f324, 0x1f393}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2815 {0x1f396, 0x1f397}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2816 {0x1f399, 0x1f39b}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2817 {0x1f39e, 0x1f3f0}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2818 {0x1f3f3, 0x1f3f5}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2819 {0x1f3f7, 0x1f4fd}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2820 {0x1f4ff, 0x1f53d}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2821 {0x1f549, 0x1f54e}, |
8819
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2822 {0x1f550, 0x1f567}, |
11539
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2823 {0x1f56f, 0x1f570}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2824 {0x1f573, 0x1f57a}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2825 {0x1f587, 0x1f587}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2826 {0x1f58a, 0x1f58d}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2827 {0x1f590, 0x1f590}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2828 {0x1f595, 0x1f596}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2829 {0x1f5a4, 0x1f5a5}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2830 {0x1f5a8, 0x1f5a8}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2831 {0x1f5b1, 0x1f5b2}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2832 {0x1f5bc, 0x1f5bc}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2833 {0x1f5c2, 0x1f5c4}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2834 {0x1f5d1, 0x1f5d3}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2835 {0x1f5dc, 0x1f5de}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2836 {0x1f5e1, 0x1f5e1}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2837 {0x1f5e3, 0x1f5e3}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2838 {0x1f5e8, 0x1f5e8}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2839 {0x1f5ef, 0x1f5ef}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2840 {0x1f5f3, 0x1f5f3}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2841 {0x1f5fa, 0x1f64f}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2842 {0x1f680, 0x1f6c5}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2843 {0x1f6cb, 0x1f6d2}, |
25062
042560a16d4e
patch 8.2.3068: Unicode tables are slightly outdated
Bram Moolenaar <Bram@vim.org>
parents:
24912
diff
changeset
|
2844 {0x1f6d5, 0x1f6d7}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2845 {0x1f6dc, 0x1f6e5}, |
11539
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2846 {0x1f6e9, 0x1f6e9}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2847 {0x1f6eb, 0x1f6ec}, |
f7ba69508fd5
patch 8.0.0652: unicode information is outdated
Christian Brabandt <cb@256bit.org>
parents:
11474
diff
changeset
|
2848 {0x1f6f0, 0x1f6f0}, |
25062
042560a16d4e
patch 8.2.3068: Unicode tables are slightly outdated
Bram Moolenaar <Bram@vim.org>
parents:
24912
diff
changeset
|
2849 {0x1f6f3, 0x1f6fc}, |
042560a16d4e
patch 8.2.3068: Unicode tables are slightly outdated
Bram Moolenaar <Bram@vim.org>
parents:
24912
diff
changeset
|
2850 {0x1f7e0, 0x1f7eb}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2851 {0x1f7f0, 0x1f7f0}, |
25062
042560a16d4e
patch 8.2.3068: Unicode tables are slightly outdated
Bram Moolenaar <Bram@vim.org>
parents:
24912
diff
changeset
|
2852 {0x1f90c, 0x1f93a}, |
042560a16d4e
patch 8.2.3068: Unicode tables are slightly outdated
Bram Moolenaar <Bram@vim.org>
parents:
24912
diff
changeset
|
2853 {0x1f93c, 0x1f945}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2854 {0x1f947, 0x1f9ff}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2855 {0x1fa70, 0x1fa7c}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2856 {0x1fa80, 0x1fa88}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2857 {0x1fa90, 0x1fabd}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2858 {0x1fabf, 0x1fac5}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2859 {0x1face, 0x1fadb}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2860 {0x1fae0, 0x1fae8}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
2861 {0x1faf0, 0x1faf8} |
8819
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2862 }; |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2863 |
7 | 2864 /* |
2865 * Get class of a Unicode character. | |
2866 * 0: white space | |
2867 * 1: punctuation | |
2868 * 2 or bigger: some class of word character. | |
2869 */ | |
2870 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
2871 utf_class(int c) |
7 | 2872 { |
10724
ae1c6bf22e5f
patch 8.0.0252: not properly recognizing word characters between 128 and 255
Christian Brabandt <cb@256bit.org>
parents:
10571
diff
changeset
|
2873 return utf_class_buf(c, curbuf); |
ae1c6bf22e5f
patch 8.0.0252: not properly recognizing word characters between 128 and 255
Christian Brabandt <cb@256bit.org>
parents:
10571
diff
changeset
|
2874 } |
ae1c6bf22e5f
patch 8.0.0252: not properly recognizing word characters between 128 and 255
Christian Brabandt <cb@256bit.org>
parents:
10571
diff
changeset
|
2875 |
ae1c6bf22e5f
patch 8.0.0252: not properly recognizing word characters between 128 and 255
Christian Brabandt <cb@256bit.org>
parents:
10571
diff
changeset
|
2876 int |
ae1c6bf22e5f
patch 8.0.0252: not properly recognizing word characters between 128 and 255
Christian Brabandt <cb@256bit.org>
parents:
10571
diff
changeset
|
2877 utf_class_buf(int c, buf_T *buf) |
ae1c6bf22e5f
patch 8.0.0252: not properly recognizing word characters between 128 and 255
Christian Brabandt <cb@256bit.org>
parents:
10571
diff
changeset
|
2878 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2879 // sorted list of non-overlapping intervals |
7 | 2880 static struct clinterval |
2881 { | |
5477 | 2882 unsigned int first; |
2883 unsigned int last; | |
2884 unsigned int class; | |
7 | 2885 } classes[] = |
2886 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2887 {0x037e, 0x037e, 1}, // Greek question mark |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2888 {0x0387, 0x0387, 1}, // Greek ano teleia |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2889 {0x055a, 0x055f, 1}, // Armenian punctuation |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2890 {0x0589, 0x0589, 1}, // Armenian full stop |
7 | 2891 {0x05be, 0x05be, 1}, |
2892 {0x05c0, 0x05c0, 1}, | |
2893 {0x05c3, 0x05c3, 1}, | |
2894 {0x05f3, 0x05f4, 1}, | |
2895 {0x060c, 0x060c, 1}, | |
2896 {0x061b, 0x061b, 1}, | |
2897 {0x061f, 0x061f, 1}, | |
2898 {0x066a, 0x066d, 1}, | |
2899 {0x06d4, 0x06d4, 1}, | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2900 {0x0700, 0x070d, 1}, // Syriac punctuation |
7 | 2901 {0x0964, 0x0965, 1}, |
2902 {0x0970, 0x0970, 1}, | |
2903 {0x0df4, 0x0df4, 1}, | |
2904 {0x0e4f, 0x0e4f, 1}, | |
2905 {0x0e5a, 0x0e5b, 1}, | |
2906 {0x0f04, 0x0f12, 1}, | |
2907 {0x0f3a, 0x0f3d, 1}, | |
2908 {0x0f85, 0x0f85, 1}, | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2909 {0x104a, 0x104f, 1}, // Myanmar punctuation |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2910 {0x10fb, 0x10fb, 1}, // Georgian punctuation |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2911 {0x1361, 0x1368, 1}, // Ethiopic punctuation |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2912 {0x166d, 0x166e, 1}, // Canadian Syl. punctuation |
7 | 2913 {0x1680, 0x1680, 0}, |
2914 {0x169b, 0x169c, 1}, | |
2915 {0x16eb, 0x16ed, 1}, | |
2916 {0x1735, 0x1736, 1}, | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2917 {0x17d4, 0x17dc, 1}, // Khmer punctuation |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2918 {0x1800, 0x180a, 1}, // Mongolian punctuation |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2919 {0x2000, 0x200b, 0}, // spaces |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2920 {0x200c, 0x2027, 1}, // punctuation and symbols |
7 | 2921 {0x2028, 0x2029, 0}, |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2922 {0x202a, 0x202e, 1}, // punctuation and symbols |
7 | 2923 {0x202f, 0x202f, 0}, |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2924 {0x2030, 0x205e, 1}, // punctuation and symbols |
7 | 2925 {0x205f, 0x205f, 0}, |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2926 {0x2060, 0x27ff, 1}, // punctuation and symbols |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2927 {0x2070, 0x207f, 0x2070}, // superscript |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2928 {0x2080, 0x2094, 0x2080}, // subscript |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2929 {0x20a0, 0x27ff, 1}, // all kinds of symbols |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2930 {0x2800, 0x28ff, 0x2800}, // braille |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2931 {0x2900, 0x2998, 1}, // arrows, brackets, etc. |
7 | 2932 {0x29d8, 0x29db, 1}, |
2933 {0x29fc, 0x29fd, 1}, | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2934 {0x2e00, 0x2e7f, 1}, // supplemental punctuation |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2935 {0x3000, 0x3000, 0}, // ideographic space |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2936 {0x3001, 0x3020, 1}, // ideographic punctuation |
7 | 2937 {0x3030, 0x3030, 1}, |
2938 {0x303d, 0x303d, 1}, | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2939 {0x3040, 0x309f, 0x3040}, // Hiragana |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2940 {0x30a0, 0x30ff, 0x30a0}, // Katakana |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2941 {0x3300, 0x9fff, 0x4e00}, // CJK Ideographs |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2942 {0xac00, 0xd7a3, 0xac00}, // Hangul Syllables |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2943 {0xf900, 0xfaff, 0x4e00}, // CJK Ideographs |
7 | 2944 {0xfd3e, 0xfd3f, 1}, |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2945 {0xfe30, 0xfe6b, 1}, // punctuation forms |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2946 {0xff00, 0xff0f, 1}, // half/fullwidth ASCII |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2947 {0xff1a, 0xff20, 1}, // half/fullwidth ASCII |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2948 {0xff3b, 0xff40, 1}, // half/fullwidth ASCII |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2949 {0xff5b, 0xff65, 1}, // half/fullwidth ASCII |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2950 {0x1d000, 0x1d24f, 1}, // Musical notation |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2951 {0x1d400, 0x1d7ff, 1}, // Mathematical Alphanumeric Symbols |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2952 {0x1f000, 0x1f2ff, 1}, // Game pieces; enclosed characters |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2953 {0x1f300, 0x1f9ff, 1}, // Many symbol blocks |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2954 {0x20000, 0x2a6df, 0x4e00}, // CJK Ideographs |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2955 {0x2a700, 0x2b73f, 0x4e00}, // CJK Ideographs |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2956 {0x2b740, 0x2b81f, 0x4e00}, // CJK Ideographs |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2957 {0x2f800, 0x2fa1f, 0x4e00}, // CJK Ideographs |
7 | 2958 }; |
8680
131e651fb347
commit https://github.com/vim/vim/commit/b86f10ee10bdf932df02bdaf601dffa671518a47
Christian Brabandt <cb@256bit.org>
parents:
8661
diff
changeset
|
2959 |
7 | 2960 int bot = 0; |
24768
7334bf933510
patch 8.2.2922: computing array length is done in various ways
Bram Moolenaar <Bram@vim.org>
parents:
24754
diff
changeset
|
2961 int top = ARRAY_LENGTH(classes) - 1; |
7 | 2962 int mid; |
2963 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2964 // First quick check for Latin1 characters, use 'iskeyword'. |
7 | 2965 if (c < 0x100) |
2966 { | |
335 | 2967 if (c == ' ' || c == '\t' || c == NUL || c == 0xa0) |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2968 return 0; // blank |
10724
ae1c6bf22e5f
patch 8.0.0252: not properly recognizing word characters between 128 and 255
Christian Brabandt <cb@256bit.org>
parents:
10571
diff
changeset
|
2969 if (vim_iswordc_buf(c, buf)) |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2970 return 2; // word character |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2971 return 1; // punctuation |
7 | 2972 } |
2973 | |
21973
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
2974 // emoji |
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
2975 if (intable(emoji_all, sizeof(emoji_all), c)) |
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
2976 return 3; |
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
2977 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2978 // binary search in table |
7 | 2979 while (top >= bot) |
2980 { | |
2981 mid = (bot + top) / 2; | |
5477 | 2982 if (classes[mid].last < (unsigned int)c) |
7 | 2983 bot = mid + 1; |
5477 | 2984 else if (classes[mid].first > (unsigned int)c) |
7 | 2985 top = mid - 1; |
2986 else | |
2987 return (int)classes[mid].class; | |
2988 } | |
2989 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
2990 // most other characters are "word" characters |
7 | 2991 return 2; |
2992 } | |
2993 | |
8819
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2994 int |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2995 utf_ambiguous_width(int c) |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2996 { |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2997 return c >= 0x80 && (intable(ambiguous, sizeof(ambiguous), c) |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2998 || intable(emoji_all, sizeof(emoji_all), c)); |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
2999 } |
a1132255e3e1
commit https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
Christian Brabandt <cb@256bit.org>
parents:
8706
diff
changeset
|
3000 |
7 | 3001 /* |
3002 * Code for Unicode case-dependent operations. Based on notes in | |
3003 * http://www.unicode.org/Public/UNIDATA/CaseFolding.txt | |
3004 * This code uses simple case folding, not full case folding. | |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3005 * Last updated for Unicode 5.2. |
7 | 3006 */ |
3007 | |
3008 /* | |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3009 * The following tables are built by ../runtime/tools/unicode.vim. |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3010 * They must be in numeric order, because we use binary search. |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3011 * An entry such as {0x41,0x5a,1,32} means that Unicode characters in the |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3012 * range from 0x41 to 0x5a inclusive, stepping by 1, are changed to |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3013 * folded/upper/lower by adding 32. |
7 | 3014 */ |
3015 typedef struct | |
3016 { | |
3017 int rangeStart; | |
3018 int rangeEnd; | |
3019 int step; | |
3020 int offset; | |
3021 } convertStruct; | |
3022 | |
297 | 3023 static convertStruct foldCase[] = |
7 | 3024 { |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3025 {0x41,0x5a,1,32}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3026 {0xb5,0xb5,-1,775}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3027 {0xc0,0xd6,1,32}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3028 {0xd8,0xde,1,32}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3029 {0x100,0x12e,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3030 {0x132,0x136,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3031 {0x139,0x147,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3032 {0x14a,0x176,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3033 {0x178,0x178,-1,-121}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3034 {0x179,0x17d,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3035 {0x17f,0x17f,-1,-268}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3036 {0x181,0x181,-1,210}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3037 {0x182,0x184,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3038 {0x186,0x186,-1,206}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3039 {0x187,0x187,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3040 {0x189,0x18a,1,205}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3041 {0x18b,0x18b,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3042 {0x18e,0x18e,-1,79}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3043 {0x18f,0x18f,-1,202}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3044 {0x190,0x190,-1,203}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3045 {0x191,0x191,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3046 {0x193,0x193,-1,205}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3047 {0x194,0x194,-1,207}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3048 {0x196,0x196,-1,211}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3049 {0x197,0x197,-1,209}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3050 {0x198,0x198,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3051 {0x19c,0x19c,-1,211}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3052 {0x19d,0x19d,-1,213}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3053 {0x19f,0x19f,-1,214}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3054 {0x1a0,0x1a4,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3055 {0x1a6,0x1a6,-1,218}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3056 {0x1a7,0x1a7,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3057 {0x1a9,0x1a9,-1,218}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3058 {0x1ac,0x1ac,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3059 {0x1ae,0x1ae,-1,218}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3060 {0x1af,0x1af,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3061 {0x1b1,0x1b2,1,217}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3062 {0x1b3,0x1b5,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3063 {0x1b7,0x1b7,-1,219}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3064 {0x1b8,0x1bc,4,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3065 {0x1c4,0x1c4,-1,2}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3066 {0x1c5,0x1c5,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3067 {0x1c7,0x1c7,-1,2}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3068 {0x1c8,0x1c8,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3069 {0x1ca,0x1ca,-1,2}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3070 {0x1cb,0x1db,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3071 {0x1de,0x1ee,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3072 {0x1f1,0x1f1,-1,2}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3073 {0x1f2,0x1f4,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3074 {0x1f6,0x1f6,-1,-97}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3075 {0x1f7,0x1f7,-1,-56}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3076 {0x1f8,0x21e,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3077 {0x220,0x220,-1,-130}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3078 {0x222,0x232,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3079 {0x23a,0x23a,-1,10795}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3080 {0x23b,0x23b,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3081 {0x23d,0x23d,-1,-163}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3082 {0x23e,0x23e,-1,10792}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3083 {0x241,0x241,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3084 {0x243,0x243,-1,-195}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3085 {0x244,0x244,-1,69}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3086 {0x245,0x245,-1,71}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3087 {0x246,0x24e,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3088 {0x345,0x345,-1,116}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3089 {0x370,0x372,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3090 {0x376,0x376,-1,1}, |
6495 | 3091 {0x37f,0x37f,-1,116}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3092 {0x386,0x386,-1,38}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3093 {0x388,0x38a,1,37}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3094 {0x38c,0x38c,-1,64}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3095 {0x38e,0x38f,1,63}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3096 {0x391,0x3a1,1,32}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3097 {0x3a3,0x3ab,1,32}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3098 {0x3c2,0x3c2,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3099 {0x3cf,0x3cf,-1,8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3100 {0x3d0,0x3d0,-1,-30}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3101 {0x3d1,0x3d1,-1,-25}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3102 {0x3d5,0x3d5,-1,-15}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3103 {0x3d6,0x3d6,-1,-22}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3104 {0x3d8,0x3ee,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3105 {0x3f0,0x3f0,-1,-54}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3106 {0x3f1,0x3f1,-1,-48}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3107 {0x3f4,0x3f4,-1,-60}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3108 {0x3f5,0x3f5,-1,-64}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3109 {0x3f7,0x3f7,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3110 {0x3f9,0x3f9,-1,-7}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3111 {0x3fa,0x3fa,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3112 {0x3fd,0x3ff,1,-130}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3113 {0x400,0x40f,1,80}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3114 {0x410,0x42f,1,32}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3115 {0x460,0x480,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3116 {0x48a,0x4be,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3117 {0x4c0,0x4c0,-1,15}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3118 {0x4c1,0x4cd,2,1}, |
6495 | 3119 {0x4d0,0x52e,2,1}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3120 {0x531,0x556,1,48}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3121 {0x10a0,0x10c5,1,7264}, |
6495 | 3122 {0x10c7,0x10cd,6,7264}, |
6864 | 3123 {0x13f8,0x13fd,1,-8}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3124 {0x1c80,0x1c80,-1,-6222}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3125 {0x1c81,0x1c81,-1,-6221}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3126 {0x1c82,0x1c82,-1,-6212}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3127 {0x1c83,0x1c84,1,-6210}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3128 {0x1c85,0x1c85,-1,-6211}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3129 {0x1c86,0x1c86,-1,-6204}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3130 {0x1c87,0x1c87,-1,-6180}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3131 {0x1c88,0x1c88,-1,35267}, |
14333
65ded7626193
patch 8.1.0182: Unicode standard was updated
Christian Brabandt <cb@256bit.org>
parents:
14075
diff
changeset
|
3132 {0x1c90,0x1cba,1,-3008}, |
65ded7626193
patch 8.1.0182: Unicode standard was updated
Christian Brabandt <cb@256bit.org>
parents:
14075
diff
changeset
|
3133 {0x1cbd,0x1cbf,1,-3008}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3134 {0x1e00,0x1e94,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3135 {0x1e9b,0x1e9b,-1,-58}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3136 {0x1e9e,0x1e9e,-1,-7615}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3137 {0x1ea0,0x1efe,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3138 {0x1f08,0x1f0f,1,-8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3139 {0x1f18,0x1f1d,1,-8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3140 {0x1f28,0x1f2f,1,-8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3141 {0x1f38,0x1f3f,1,-8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3142 {0x1f48,0x1f4d,1,-8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3143 {0x1f59,0x1f5f,2,-8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3144 {0x1f68,0x1f6f,1,-8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3145 {0x1f88,0x1f8f,1,-8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3146 {0x1f98,0x1f9f,1,-8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3147 {0x1fa8,0x1faf,1,-8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3148 {0x1fb8,0x1fb9,1,-8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3149 {0x1fba,0x1fbb,1,-74}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3150 {0x1fbc,0x1fbc,-1,-9}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3151 {0x1fbe,0x1fbe,-1,-7173}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3152 {0x1fc8,0x1fcb,1,-86}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3153 {0x1fcc,0x1fcc,-1,-9}, |
33529
6d7a054bf2e3
patch 9.0.2013: Unicode tables outdated
Christian Brabandt <cb@256bit.org>
parents:
33399
diff
changeset
|
3154 {0x1fd3,0x1fd3,-1,-7235}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3155 {0x1fd8,0x1fd9,1,-8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3156 {0x1fda,0x1fdb,1,-100}, |
33529
6d7a054bf2e3
patch 9.0.2013: Unicode tables outdated
Christian Brabandt <cb@256bit.org>
parents:
33399
diff
changeset
|
3157 {0x1fe3,0x1fe3,-1,-7219}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3158 {0x1fe8,0x1fe9,1,-8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3159 {0x1fea,0x1feb,1,-112}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3160 {0x1fec,0x1fec,-1,-7}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3161 {0x1ff8,0x1ff9,1,-128}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3162 {0x1ffa,0x1ffb,1,-126}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3163 {0x1ffc,0x1ffc,-1,-9}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3164 {0x2126,0x2126,-1,-7517}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3165 {0x212a,0x212a,-1,-8383}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3166 {0x212b,0x212b,-1,-8262}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3167 {0x2132,0x2132,-1,28}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3168 {0x2160,0x216f,1,16}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3169 {0x2183,0x2183,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3170 {0x24b6,0x24cf,1,26}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3171 {0x2c00,0x2c2f,1,48}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3172 {0x2c60,0x2c60,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3173 {0x2c62,0x2c62,-1,-10743}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3174 {0x2c63,0x2c63,-1,-3814}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3175 {0x2c64,0x2c64,-1,-10727}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3176 {0x2c67,0x2c6b,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3177 {0x2c6d,0x2c6d,-1,-10780}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3178 {0x2c6e,0x2c6e,-1,-10749}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3179 {0x2c6f,0x2c6f,-1,-10783}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3180 {0x2c70,0x2c70,-1,-10782}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3181 {0x2c72,0x2c75,3,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3182 {0x2c7e,0x2c7f,1,-10815}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3183 {0x2c80,0x2ce2,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3184 {0x2ceb,0x2ced,2,1}, |
6495 | 3185 {0x2cf2,0xa640,31054,1}, |
3186 {0xa642,0xa66c,2,1}, | |
3187 {0xa680,0xa69a,2,1}, | |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3188 {0xa722,0xa72e,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3189 {0xa732,0xa76e,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3190 {0xa779,0xa77b,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3191 {0xa77d,0xa77d,-1,-35332}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3192 {0xa77e,0xa786,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3193 {0xa78b,0xa78b,-1,1}, |
6495 | 3194 {0xa78d,0xa78d,-1,-42280}, |
3195 {0xa790,0xa792,2,1}, | |
3196 {0xa796,0xa7a8,2,1}, | |
3197 {0xa7aa,0xa7aa,-1,-42308}, | |
3198 {0xa7ab,0xa7ab,-1,-42319}, | |
3199 {0xa7ac,0xa7ac,-1,-42315}, | |
3200 {0xa7ad,0xa7ad,-1,-42305}, | |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3201 {0xa7ae,0xa7ae,-1,-42308}, |
6495 | 3202 {0xa7b0,0xa7b0,-1,-42258}, |
3203 {0xa7b1,0xa7b1,-1,-42282}, | |
6864 | 3204 {0xa7b2,0xa7b2,-1,-42261}, |
3205 {0xa7b3,0xa7b3,-1,928}, | |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3206 {0xa7b4,0xa7c2,2,1}, |
16304
c83169bdb290
patch 8.1.1157: Unicode tables are out of date
Bram Moolenaar <Bram@vim.org>
parents:
16302
diff
changeset
|
3207 {0xa7c4,0xa7c4,-1,-48}, |
c83169bdb290
patch 8.1.1157: Unicode tables are out of date
Bram Moolenaar <Bram@vim.org>
parents:
16302
diff
changeset
|
3208 {0xa7c5,0xa7c5,-1,-42307}, |
c83169bdb290
patch 8.1.1157: Unicode tables are out of date
Bram Moolenaar <Bram@vim.org>
parents:
16302
diff
changeset
|
3209 {0xa7c6,0xa7c6,-1,-35384}, |
25062
042560a16d4e
patch 8.2.3068: Unicode tables are slightly outdated
Bram Moolenaar <Bram@vim.org>
parents:
24912
diff
changeset
|
3210 {0xa7c7,0xa7c9,2,1}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3211 {0xa7d0,0xa7d6,6,1}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3212 {0xa7d8,0xa7f5,29,1}, |
6864 | 3213 {0xab70,0xabbf,1,-38864}, |
33529
6d7a054bf2e3
patch 9.0.2013: Unicode tables outdated
Christian Brabandt <cb@256bit.org>
parents:
33399
diff
changeset
|
3214 {0xfb05,0xfb05,-1,1}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3215 {0xff21,0xff3a,1,32}, |
6495 | 3216 {0x10400,0x10427,1,40}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3217 {0x104b0,0x104d3,1,40}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3218 {0x10570,0x1057a,1,39}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3219 {0x1057c,0x1058a,1,39}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3220 {0x1058c,0x10592,1,39}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3221 {0x10594,0x10595,1,39}, |
6864 | 3222 {0x10c80,0x10cb2,1,64}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3223 {0x118a0,0x118bf,1,32}, |
14333
65ded7626193
patch 8.1.0182: Unicode standard was updated
Christian Brabandt <cb@256bit.org>
parents:
14075
diff
changeset
|
3224 {0x16e40,0x16e5f,1,32}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3225 {0x1e900,0x1e921,1,34} |
7 | 3226 }; |
3227 | |
3228 /* | |
3229 * Generic conversion function for case operations. | |
3230 * Return the converted equivalent of "a", which is a UCS-4 character. Use | |
3231 * the given conversion "table". Uses binary search on "table". | |
3232 */ | |
3233 static int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3234 utf_convert( |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3235 int a, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3236 convertStruct table[], |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3237 int tableSize) |
7 | 3238 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3239 int start, mid, end; // indices into table |
3190 | 3240 int entries = tableSize / sizeof(convertStruct); |
7 | 3241 |
3242 start = 0; | |
3190 | 3243 end = entries; |
7 | 3244 while (start < end) |
3245 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3246 // need to search further |
3190 | 3247 mid = (end + start) / 2; |
7 | 3248 if (table[mid].rangeEnd < a) |
3249 start = mid + 1; | |
3250 else | |
3251 end = mid; | |
3252 } | |
3190 | 3253 if (start < entries |
3254 && table[start].rangeStart <= a | |
3255 && a <= table[start].rangeEnd | |
7 | 3256 && (a - table[start].rangeStart) % table[start].step == 0) |
3257 return (a + table[start].offset); | |
3258 else | |
3259 return a; | |
3260 } | |
3261 | |
3262 /* | |
3263 * Return the folded-case equivalent of "a", which is a UCS-4 character. Uses | |
3264 * simple case folding. | |
3265 */ | |
3266 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3267 utf_fold(int a) |
7 | 3268 { |
9477
045543df0c28
commit https://github.com/vim/vim/commit/c4a927ca8dc383190d5df2cacd3f966698b6190c
Christian Brabandt <cb@256bit.org>
parents:
9357
diff
changeset
|
3269 if (a < 0x80) |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3270 // be fast for ASCII |
9477
045543df0c28
commit https://github.com/vim/vim/commit/c4a927ca8dc383190d5df2cacd3f966698b6190c
Christian Brabandt <cb@256bit.org>
parents:
9357
diff
changeset
|
3271 return a >= 0x41 && a <= 0x5a ? a + 32 : a; |
3190 | 3272 return utf_convert(a, foldCase, (int)sizeof(foldCase)); |
7 | 3273 } |
3274 | |
297 | 3275 static convertStruct toLower[] = |
7 | 3276 { |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3277 {0x41,0x5a,1,32}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3278 {0xc0,0xd6,1,32}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3279 {0xd8,0xde,1,32}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3280 {0x100,0x12e,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3281 {0x130,0x130,-1,-199}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3282 {0x132,0x136,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3283 {0x139,0x147,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3284 {0x14a,0x176,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3285 {0x178,0x178,-1,-121}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3286 {0x179,0x17d,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3287 {0x181,0x181,-1,210}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3288 {0x182,0x184,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3289 {0x186,0x186,-1,206}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3290 {0x187,0x187,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3291 {0x189,0x18a,1,205}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3292 {0x18b,0x18b,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3293 {0x18e,0x18e,-1,79}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3294 {0x18f,0x18f,-1,202}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3295 {0x190,0x190,-1,203}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3296 {0x191,0x191,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3297 {0x193,0x193,-1,205}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3298 {0x194,0x194,-1,207}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3299 {0x196,0x196,-1,211}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3300 {0x197,0x197,-1,209}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3301 {0x198,0x198,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3302 {0x19c,0x19c,-1,211}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3303 {0x19d,0x19d,-1,213}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3304 {0x19f,0x19f,-1,214}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3305 {0x1a0,0x1a4,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3306 {0x1a6,0x1a6,-1,218}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3307 {0x1a7,0x1a7,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3308 {0x1a9,0x1a9,-1,218}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3309 {0x1ac,0x1ac,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3310 {0x1ae,0x1ae,-1,218}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3311 {0x1af,0x1af,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3312 {0x1b1,0x1b2,1,217}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3313 {0x1b3,0x1b5,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3314 {0x1b7,0x1b7,-1,219}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3315 {0x1b8,0x1bc,4,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3316 {0x1c4,0x1c4,-1,2}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3317 {0x1c5,0x1c5,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3318 {0x1c7,0x1c7,-1,2}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3319 {0x1c8,0x1c8,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3320 {0x1ca,0x1ca,-1,2}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3321 {0x1cb,0x1db,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3322 {0x1de,0x1ee,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3323 {0x1f1,0x1f1,-1,2}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3324 {0x1f2,0x1f4,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3325 {0x1f6,0x1f6,-1,-97}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3326 {0x1f7,0x1f7,-1,-56}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3327 {0x1f8,0x21e,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3328 {0x220,0x220,-1,-130}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3329 {0x222,0x232,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3330 {0x23a,0x23a,-1,10795}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3331 {0x23b,0x23b,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3332 {0x23d,0x23d,-1,-163}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3333 {0x23e,0x23e,-1,10792}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3334 {0x241,0x241,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3335 {0x243,0x243,-1,-195}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3336 {0x244,0x244,-1,69}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3337 {0x245,0x245,-1,71}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3338 {0x246,0x24e,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3339 {0x370,0x372,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3340 {0x376,0x376,-1,1}, |
6495 | 3341 {0x37f,0x37f,-1,116}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3342 {0x386,0x386,-1,38}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3343 {0x388,0x38a,1,37}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3344 {0x38c,0x38c,-1,64}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3345 {0x38e,0x38f,1,63}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3346 {0x391,0x3a1,1,32}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3347 {0x3a3,0x3ab,1,32}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3348 {0x3cf,0x3cf,-1,8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3349 {0x3d8,0x3ee,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3350 {0x3f4,0x3f4,-1,-60}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3351 {0x3f7,0x3f7,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3352 {0x3f9,0x3f9,-1,-7}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3353 {0x3fa,0x3fa,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3354 {0x3fd,0x3ff,1,-130}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3355 {0x400,0x40f,1,80}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3356 {0x410,0x42f,1,32}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3357 {0x460,0x480,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3358 {0x48a,0x4be,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3359 {0x4c0,0x4c0,-1,15}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3360 {0x4c1,0x4cd,2,1}, |
6495 | 3361 {0x4d0,0x52e,2,1}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3362 {0x531,0x556,1,48}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3363 {0x10a0,0x10c5,1,7264}, |
6495 | 3364 {0x10c7,0x10cd,6,7264}, |
6864 | 3365 {0x13a0,0x13ef,1,38864}, |
3366 {0x13f0,0x13f5,1,8}, | |
14333
65ded7626193
patch 8.1.0182: Unicode standard was updated
Christian Brabandt <cb@256bit.org>
parents:
14075
diff
changeset
|
3367 {0x1c90,0x1cba,1,-3008}, |
65ded7626193
patch 8.1.0182: Unicode standard was updated
Christian Brabandt <cb@256bit.org>
parents:
14075
diff
changeset
|
3368 {0x1cbd,0x1cbf,1,-3008}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3369 {0x1e00,0x1e94,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3370 {0x1e9e,0x1e9e,-1,-7615}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3371 {0x1ea0,0x1efe,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3372 {0x1f08,0x1f0f,1,-8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3373 {0x1f18,0x1f1d,1,-8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3374 {0x1f28,0x1f2f,1,-8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3375 {0x1f38,0x1f3f,1,-8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3376 {0x1f48,0x1f4d,1,-8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3377 {0x1f59,0x1f5f,2,-8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3378 {0x1f68,0x1f6f,1,-8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3379 {0x1f88,0x1f8f,1,-8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3380 {0x1f98,0x1f9f,1,-8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3381 {0x1fa8,0x1faf,1,-8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3382 {0x1fb8,0x1fb9,1,-8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3383 {0x1fba,0x1fbb,1,-74}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3384 {0x1fbc,0x1fbc,-1,-9}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3385 {0x1fc8,0x1fcb,1,-86}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3386 {0x1fcc,0x1fcc,-1,-9}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3387 {0x1fd8,0x1fd9,1,-8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3388 {0x1fda,0x1fdb,1,-100}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3389 {0x1fe8,0x1fe9,1,-8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3390 {0x1fea,0x1feb,1,-112}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3391 {0x1fec,0x1fec,-1,-7}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3392 {0x1ff8,0x1ff9,1,-128}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3393 {0x1ffa,0x1ffb,1,-126}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3394 {0x1ffc,0x1ffc,-1,-9}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3395 {0x2126,0x2126,-1,-7517}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3396 {0x212a,0x212a,-1,-8383}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3397 {0x212b,0x212b,-1,-8262}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3398 {0x2132,0x2132,-1,28}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3399 {0x2160,0x216f,1,16}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3400 {0x2183,0x2183,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3401 {0x24b6,0x24cf,1,26}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3402 {0x2c00,0x2c2f,1,48}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3403 {0x2c60,0x2c60,-1,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3404 {0x2c62,0x2c62,-1,-10743}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3405 {0x2c63,0x2c63,-1,-3814}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3406 {0x2c64,0x2c64,-1,-10727}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3407 {0x2c67,0x2c6b,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3408 {0x2c6d,0x2c6d,-1,-10780}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3409 {0x2c6e,0x2c6e,-1,-10749}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3410 {0x2c6f,0x2c6f,-1,-10783}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3411 {0x2c70,0x2c70,-1,-10782}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3412 {0x2c72,0x2c75,3,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3413 {0x2c7e,0x2c7f,1,-10815}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3414 {0x2c80,0x2ce2,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3415 {0x2ceb,0x2ced,2,1}, |
6495 | 3416 {0x2cf2,0xa640,31054,1}, |
3417 {0xa642,0xa66c,2,1}, | |
3418 {0xa680,0xa69a,2,1}, | |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3419 {0xa722,0xa72e,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3420 {0xa732,0xa76e,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3421 {0xa779,0xa77b,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3422 {0xa77d,0xa77d,-1,-35332}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3423 {0xa77e,0xa786,2,1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3424 {0xa78b,0xa78b,-1,1}, |
6495 | 3425 {0xa78d,0xa78d,-1,-42280}, |
3426 {0xa790,0xa792,2,1}, | |
3427 {0xa796,0xa7a8,2,1}, | |
3428 {0xa7aa,0xa7aa,-1,-42308}, | |
3429 {0xa7ab,0xa7ab,-1,-42319}, | |
3430 {0xa7ac,0xa7ac,-1,-42315}, | |
3431 {0xa7ad,0xa7ad,-1,-42305}, | |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3432 {0xa7ae,0xa7ae,-1,-42308}, |
6495 | 3433 {0xa7b0,0xa7b0,-1,-42258}, |
3434 {0xa7b1,0xa7b1,-1,-42282}, | |
6864 | 3435 {0xa7b2,0xa7b2,-1,-42261}, |
3436 {0xa7b3,0xa7b3,-1,928}, | |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3437 {0xa7b4,0xa7c2,2,1}, |
16304
c83169bdb290
patch 8.1.1157: Unicode tables are out of date
Bram Moolenaar <Bram@vim.org>
parents:
16302
diff
changeset
|
3438 {0xa7c4,0xa7c4,-1,-48}, |
c83169bdb290
patch 8.1.1157: Unicode tables are out of date
Bram Moolenaar <Bram@vim.org>
parents:
16302
diff
changeset
|
3439 {0xa7c5,0xa7c5,-1,-42307}, |
c83169bdb290
patch 8.1.1157: Unicode tables are out of date
Bram Moolenaar <Bram@vim.org>
parents:
16302
diff
changeset
|
3440 {0xa7c6,0xa7c6,-1,-35384}, |
25062
042560a16d4e
patch 8.2.3068: Unicode tables are slightly outdated
Bram Moolenaar <Bram@vim.org>
parents:
24912
diff
changeset
|
3441 {0xa7c7,0xa7c9,2,1}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3442 {0xa7d0,0xa7d6,6,1}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3443 {0xa7d8,0xa7f5,29,1}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3444 {0xff21,0xff3a,1,32}, |
6495 | 3445 {0x10400,0x10427,1,40}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3446 {0x104b0,0x104d3,1,40}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3447 {0x10570,0x1057a,1,39}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3448 {0x1057c,0x1058a,1,39}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3449 {0x1058c,0x10592,1,39}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3450 {0x10594,0x10595,1,39}, |
6864 | 3451 {0x10c80,0x10cb2,1,64}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3452 {0x118a0,0x118bf,1,32}, |
14333
65ded7626193
patch 8.1.0182: Unicode standard was updated
Christian Brabandt <cb@256bit.org>
parents:
14075
diff
changeset
|
3453 {0x16e40,0x16e5f,1,32}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3454 {0x1e900,0x1e921,1,34} |
7 | 3455 }; |
3456 | |
297 | 3457 static convertStruct toUpper[] = |
7 | 3458 { |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3459 {0x61,0x7a,1,-32}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3460 {0xb5,0xb5,-1,743}, |
6495 | 3461 {0xe0,0xf6,1,-32}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3462 {0xf8,0xfe,1,-32}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3463 {0xff,0xff,-1,121}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3464 {0x101,0x12f,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3465 {0x131,0x131,-1,-232}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3466 {0x133,0x137,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3467 {0x13a,0x148,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3468 {0x14b,0x177,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3469 {0x17a,0x17e,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3470 {0x17f,0x17f,-1,-300}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3471 {0x180,0x180,-1,195}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3472 {0x183,0x185,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3473 {0x188,0x18c,4,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3474 {0x192,0x192,-1,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3475 {0x195,0x195,-1,97}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3476 {0x199,0x199,-1,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3477 {0x19a,0x19a,-1,163}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3478 {0x19e,0x19e,-1,130}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3479 {0x1a1,0x1a5,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3480 {0x1a8,0x1ad,5,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3481 {0x1b0,0x1b4,4,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3482 {0x1b6,0x1b9,3,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3483 {0x1bd,0x1bd,-1,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3484 {0x1bf,0x1bf,-1,56}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3485 {0x1c5,0x1c5,-1,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3486 {0x1c6,0x1c6,-1,-2}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3487 {0x1c8,0x1c8,-1,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3488 {0x1c9,0x1c9,-1,-2}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3489 {0x1cb,0x1cb,-1,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3490 {0x1cc,0x1cc,-1,-2}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3491 {0x1ce,0x1dc,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3492 {0x1dd,0x1dd,-1,-79}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3493 {0x1df,0x1ef,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3494 {0x1f2,0x1f2,-1,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3495 {0x1f3,0x1f3,-1,-2}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3496 {0x1f5,0x1f9,4,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3497 {0x1fb,0x21f,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3498 {0x223,0x233,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3499 {0x23c,0x23c,-1,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3500 {0x23f,0x240,1,10815}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3501 {0x242,0x247,5,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3502 {0x249,0x24f,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3503 {0x250,0x250,-1,10783}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3504 {0x251,0x251,-1,10780}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3505 {0x252,0x252,-1,10782}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3506 {0x253,0x253,-1,-210}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3507 {0x254,0x254,-1,-206}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3508 {0x256,0x257,1,-205}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3509 {0x259,0x259,-1,-202}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3510 {0x25b,0x25b,-1,-203}, |
6495 | 3511 {0x25c,0x25c,-1,42319}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3512 {0x260,0x260,-1,-205}, |
6495 | 3513 {0x261,0x261,-1,42315}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3514 {0x263,0x263,-1,-207}, |
6495 | 3515 {0x265,0x265,-1,42280}, |
3516 {0x266,0x266,-1,42308}, | |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3517 {0x268,0x268,-1,-209}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3518 {0x269,0x269,-1,-211}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3519 {0x26a,0x26a,-1,42308}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3520 {0x26b,0x26b,-1,10743}, |
6495 | 3521 {0x26c,0x26c,-1,42305}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3522 {0x26f,0x26f,-1,-211}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3523 {0x271,0x271,-1,10749}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3524 {0x272,0x272,-1,-213}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3525 {0x275,0x275,-1,-214}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3526 {0x27d,0x27d,-1,10727}, |
16304
c83169bdb290
patch 8.1.1157: Unicode tables are out of date
Bram Moolenaar <Bram@vim.org>
parents:
16302
diff
changeset
|
3527 {0x280,0x280,-1,-218}, |
c83169bdb290
patch 8.1.1157: Unicode tables are out of date
Bram Moolenaar <Bram@vim.org>
parents:
16302
diff
changeset
|
3528 {0x282,0x282,-1,42307}, |
c83169bdb290
patch 8.1.1157: Unicode tables are out of date
Bram Moolenaar <Bram@vim.org>
parents:
16302
diff
changeset
|
3529 {0x283,0x283,-1,-218}, |
6495 | 3530 {0x287,0x287,-1,42282}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3531 {0x288,0x288,-1,-218}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3532 {0x289,0x289,-1,-69}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3533 {0x28a,0x28b,1,-217}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3534 {0x28c,0x28c,-1,-71}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3535 {0x292,0x292,-1,-219}, |
6864 | 3536 {0x29d,0x29d,-1,42261}, |
6495 | 3537 {0x29e,0x29e,-1,42258}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3538 {0x345,0x345,-1,84}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3539 {0x371,0x373,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3540 {0x377,0x377,-1,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3541 {0x37b,0x37d,1,130}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3542 {0x3ac,0x3ac,-1,-38}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3543 {0x3ad,0x3af,1,-37}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3544 {0x3b1,0x3c1,1,-32}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3545 {0x3c2,0x3c2,-1,-31}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3546 {0x3c3,0x3cb,1,-32}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3547 {0x3cc,0x3cc,-1,-64}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3548 {0x3cd,0x3ce,1,-63}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3549 {0x3d0,0x3d0,-1,-62}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3550 {0x3d1,0x3d1,-1,-57}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3551 {0x3d5,0x3d5,-1,-47}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3552 {0x3d6,0x3d6,-1,-54}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3553 {0x3d7,0x3d7,-1,-8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3554 {0x3d9,0x3ef,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3555 {0x3f0,0x3f0,-1,-86}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3556 {0x3f1,0x3f1,-1,-80}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3557 {0x3f2,0x3f2,-1,7}, |
6495 | 3558 {0x3f3,0x3f3,-1,-116}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3559 {0x3f5,0x3f5,-1,-96}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3560 {0x3f8,0x3fb,3,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3561 {0x430,0x44f,1,-32}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3562 {0x450,0x45f,1,-80}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3563 {0x461,0x481,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3564 {0x48b,0x4bf,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3565 {0x4c2,0x4ce,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3566 {0x4cf,0x4cf,-1,-15}, |
6495 | 3567 {0x4d1,0x52f,2,-1}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3568 {0x561,0x586,1,-48}, |
14333
65ded7626193
patch 8.1.0182: Unicode standard was updated
Christian Brabandt <cb@256bit.org>
parents:
14075
diff
changeset
|
3569 {0x10d0,0x10fa,1,3008}, |
65ded7626193
patch 8.1.0182: Unicode standard was updated
Christian Brabandt <cb@256bit.org>
parents:
14075
diff
changeset
|
3570 {0x10fd,0x10ff,1,3008}, |
6864 | 3571 {0x13f8,0x13fd,1,-8}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3572 {0x1c80,0x1c80,-1,-6254}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3573 {0x1c81,0x1c81,-1,-6253}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3574 {0x1c82,0x1c82,-1,-6244}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3575 {0x1c83,0x1c84,1,-6242}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3576 {0x1c85,0x1c85,-1,-6243}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3577 {0x1c86,0x1c86,-1,-6236}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3578 {0x1c87,0x1c87,-1,-6181}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3579 {0x1c88,0x1c88,-1,35266}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3580 {0x1d79,0x1d79,-1,35332}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3581 {0x1d7d,0x1d7d,-1,3814}, |
16304
c83169bdb290
patch 8.1.1157: Unicode tables are out of date
Bram Moolenaar <Bram@vim.org>
parents:
16302
diff
changeset
|
3582 {0x1d8e,0x1d8e,-1,35384}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3583 {0x1e01,0x1e95,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3584 {0x1e9b,0x1e9b,-1,-59}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3585 {0x1ea1,0x1eff,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3586 {0x1f00,0x1f07,1,8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3587 {0x1f10,0x1f15,1,8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3588 {0x1f20,0x1f27,1,8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3589 {0x1f30,0x1f37,1,8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3590 {0x1f40,0x1f45,1,8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3591 {0x1f51,0x1f57,2,8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3592 {0x1f60,0x1f67,1,8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3593 {0x1f70,0x1f71,1,74}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3594 {0x1f72,0x1f75,1,86}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3595 {0x1f76,0x1f77,1,100}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3596 {0x1f78,0x1f79,1,128}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3597 {0x1f7a,0x1f7b,1,112}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3598 {0x1f7c,0x1f7d,1,126}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3599 {0x1f80,0x1f87,1,8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3600 {0x1f90,0x1f97,1,8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3601 {0x1fa0,0x1fa7,1,8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3602 {0x1fb0,0x1fb1,1,8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3603 {0x1fb3,0x1fb3,-1,9}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3604 {0x1fbe,0x1fbe,-1,-7205}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3605 {0x1fc3,0x1fc3,-1,9}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3606 {0x1fd0,0x1fd1,1,8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3607 {0x1fe0,0x1fe1,1,8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3608 {0x1fe5,0x1fe5,-1,7}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3609 {0x1ff3,0x1ff3,-1,9}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3610 {0x214e,0x214e,-1,-28}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3611 {0x2170,0x217f,1,-16}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3612 {0x2184,0x2184,-1,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3613 {0x24d0,0x24e9,1,-26}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3614 {0x2c30,0x2c5f,1,-48}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3615 {0x2c61,0x2c61,-1,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3616 {0x2c65,0x2c65,-1,-10795}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3617 {0x2c66,0x2c66,-1,-10792}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3618 {0x2c68,0x2c6c,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3619 {0x2c73,0x2c76,3,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3620 {0x2c81,0x2ce3,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3621 {0x2cec,0x2cee,2,-1}, |
6495 | 3622 {0x2cf3,0x2cf3,-1,-1}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3623 {0x2d00,0x2d25,1,-7264}, |
6495 | 3624 {0x2d27,0x2d2d,6,-7264}, |
3625 {0xa641,0xa66d,2,-1}, | |
3626 {0xa681,0xa69b,2,-1}, | |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3627 {0xa723,0xa72f,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3628 {0xa733,0xa76f,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3629 {0xa77a,0xa77c,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3630 {0xa77f,0xa787,2,-1}, |
6495 | 3631 {0xa78c,0xa791,5,-1}, |
16304
c83169bdb290
patch 8.1.1157: Unicode tables are out of date
Bram Moolenaar <Bram@vim.org>
parents:
16302
diff
changeset
|
3632 {0xa793,0xa793,-1,-1}, |
c83169bdb290
patch 8.1.1157: Unicode tables are out of date
Bram Moolenaar <Bram@vim.org>
parents:
16302
diff
changeset
|
3633 {0xa794,0xa794,-1,48}, |
c83169bdb290
patch 8.1.1157: Unicode tables are out of date
Bram Moolenaar <Bram@vim.org>
parents:
16302
diff
changeset
|
3634 {0xa797,0xa7a9,2,-1}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3635 {0xa7b5,0xa7c3,2,-1}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3636 {0xa7c8,0xa7ca,2,-1}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3637 {0xa7d1,0xa7d7,6,-1}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3638 {0xa7d9,0xa7f6,29,-1}, |
6864 | 3639 {0xab53,0xab53,-1,-928}, |
3640 {0xab70,0xabbf,1,-38864}, | |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3641 {0xff41,0xff5a,1,-32}, |
6495 | 3642 {0x10428,0x1044f,1,-40}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3643 {0x104d8,0x104fb,1,-40}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3644 {0x10597,0x105a1,1,-39}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3645 {0x105a3,0x105b1,1,-39}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3646 {0x105b3,0x105b9,1,-39}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3647 {0x105bb,0x105bc,1,-39}, |
6864 | 3648 {0x10cc0,0x10cf2,1,-64}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3649 {0x118c0,0x118df,1,-32}, |
14333
65ded7626193
patch 8.1.0182: Unicode standard was updated
Christian Brabandt <cb@256bit.org>
parents:
14075
diff
changeset
|
3650 {0x16e60,0x16e7f,1,-32}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3651 {0x1e922,0x1e943,1,-34} |
7 | 3652 }; |
8682
4ce551bd5024
commit https://github.com/vim/vim/commit/d63aff0a65b955447de2fd8bfdaee29b61ce2843
Christian Brabandt <cb@256bit.org>
parents:
8680
diff
changeset
|
3653 |
7 | 3654 /* |
3655 * Return the upper-case equivalent of "a", which is a UCS-4 character. Use | |
3656 * simple case folding. | |
3657 */ | |
3658 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3659 utf_toupper(int a) |
7 | 3660 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3661 // If 'casemap' contains "keepascii" use ASCII style toupper(). |
7 | 3662 if (a < 128 && (cmp_flags & CMP_KEEPASCII)) |
3663 return TOUPPER_ASC(a); | |
3664 | |
856 | 3665 #if defined(HAVE_TOWUPPER) && defined(__STDC_ISO_10646__) |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3666 // If towupper() is available and handles Unicode, use it. |
7 | 3667 if (!(cmp_flags & CMP_INTERNAL)) |
3668 return towupper(a); | |
3669 #endif | |
3670 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3671 // For characters below 128 use locale sensitive toupper(). |
7 | 3672 if (a < 128) |
3673 return TOUPPER_LOC(a); | |
3674 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3675 // For any other characters use the above mapping table. |
3190 | 3676 return utf_convert(a, toUpper, (int)sizeof(toUpper)); |
7 | 3677 } |
3678 | |
3679 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3680 utf_islower(int a) |
7 | 3681 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3682 // German sharp s is lower case but has no upper case equivalent. |
3551 | 3683 return (utf_toupper(a) != a) || a == 0xdf; |
7 | 3684 } |
3685 | |
3686 /* | |
3687 * Return the lower-case equivalent of "a", which is a UCS-4 character. Use | |
3688 * simple case folding. | |
3689 */ | |
3690 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3691 utf_tolower(int a) |
7 | 3692 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3693 // If 'casemap' contains "keepascii" use ASCII style tolower(). |
7 | 3694 if (a < 128 && (cmp_flags & CMP_KEEPASCII)) |
3695 return TOLOWER_ASC(a); | |
3696 | |
856 | 3697 #if defined(HAVE_TOWLOWER) && defined(__STDC_ISO_10646__) |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3698 // If towlower() is available and handles Unicode, use it. |
7 | 3699 if (!(cmp_flags & CMP_INTERNAL)) |
3700 return towlower(a); | |
3701 #endif | |
3702 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3703 // For characters below 128 use locale sensitive tolower(). |
7 | 3704 if (a < 128) |
3705 return TOLOWER_LOC(a); | |
3706 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3707 // For any other characters use the above mapping table. |
3190 | 3708 return utf_convert(a, toLower, (int)sizeof(toLower)); |
7 | 3709 } |
3710 | |
3711 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3712 utf_isupper(int a) |
7 | 3713 { |
3714 return (utf_tolower(a) != a); | |
3715 } | |
3716 | |
2961 | 3717 static int |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3718 utf_strnicmp( |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3719 char_u *s1, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3720 char_u *s2, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3721 size_t n1, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3722 size_t n2) |
2961 | 3723 { |
3724 int c1, c2, cdiff; | |
3725 char_u buffer[6]; | |
3726 | |
3727 for (;;) | |
3728 { | |
3729 c1 = utf_safe_read_char_adv(&s1, &n1); | |
3730 c2 = utf_safe_read_char_adv(&s2, &n2); | |
3731 | |
3732 if (c1 <= 0 || c2 <= 0) | |
3733 break; | |
3734 | |
3735 if (c1 == c2) | |
3736 continue; | |
3737 | |
3738 cdiff = utf_fold(c1) - utf_fold(c2); | |
3739 if (cdiff != 0) | |
3740 return cdiff; | |
3741 } | |
3742 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3743 // some string ended or has an incomplete/illegal character sequence |
2961 | 3744 |
3745 if (c1 == 0 || c2 == 0) | |
3746 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3747 // some string ended. shorter string is smaller |
2961 | 3748 if (c1 == 0 && c2 == 0) |
3749 return 0; | |
3750 return c1 == 0 ? -1 : 1; | |
3751 } | |
3752 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3753 // Continue with bytewise comparison to produce some result that |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3754 // would make comparison operations involving this function transitive. |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3755 // |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3756 // If only one string had an error, comparison should be made with |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3757 // folded version of the other string. In this case it is enough |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3758 // to fold just one character to determine the result of comparison. |
2961 | 3759 |
3760 if (c1 != -1 && c2 == -1) | |
3761 { | |
3762 n1 = utf_char2bytes(utf_fold(c1), buffer); | |
3763 s1 = buffer; | |
3764 } | |
3765 else if (c2 != -1 && c1 == -1) | |
3766 { | |
3767 n2 = utf_char2bytes(utf_fold(c2), buffer); | |
3768 s2 = buffer; | |
3769 } | |
3770 | |
3771 while (n1 > 0 && n2 > 0 && *s1 != NUL && *s2 != NUL) | |
3772 { | |
3773 cdiff = (int)(*s1) - (int)(*s2); | |
3774 if (cdiff != 0) | |
3775 return cdiff; | |
3776 | |
3777 s1++; | |
3778 s2++; | |
3779 n1--; | |
3780 n2--; | |
3781 } | |
3782 | |
3783 if (n1 > 0 && *s1 == NUL) | |
3784 n1 = 0; | |
3785 if (n2 > 0 && *s2 == NUL) | |
3786 n2 = 0; | |
3787 | |
3788 if (n1 == 0 && n2 == 0) | |
3789 return 0; | |
3790 return n1 == 0 ? -1 : 1; | |
3791 } | |
3792 | |
7 | 3793 /* |
3794 * Version of strnicmp() that handles multi-byte characters. | |
4025 | 3795 * Needed for Big5, Shift-JIS and UTF-8 encoding. Other DBCS encodings can |
7 | 3796 * probably use strnicmp(), because there are no ASCII characters in the |
3797 * second byte. | |
3798 * Returns zero if s1 and s2 are equal (ignoring case), the difference between | |
3799 * two characters otherwise. | |
3800 */ | |
3801 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3802 mb_strnicmp(char_u *s1, char_u *s2, size_t nn) |
7 | 3803 { |
2961 | 3804 int i, l; |
7 | 3805 int cdiff; |
835 | 3806 int n = (int)nn; |
7 | 3807 |
2961 | 3808 if (enc_utf8) |
7 | 3809 { |
2961 | 3810 return utf_strnicmp(s1, s2, nn, nn); |
3811 } | |
3812 else | |
3813 { | |
3814 for (i = 0; i < n; i += l) | |
7 | 3815 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3816 if (s1[i] == NUL && s2[i] == NUL) // both strings end |
2961 | 3817 return 0; |
3818 | |
474 | 3819 l = (*mb_ptr2len)(s1 + i); |
7 | 3820 if (l <= 1) |
3821 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3822 // Single byte: first check normally, then with ignore case. |
7 | 3823 if (s1[i] != s2[i]) |
3824 { | |
1347 | 3825 cdiff = MB_TOLOWER(s1[i]) - MB_TOLOWER(s2[i]); |
7 | 3826 if (cdiff != 0) |
3827 return cdiff; | |
3828 } | |
3829 } | |
3830 else | |
3831 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3832 // For non-Unicode multi-byte don't ignore case. |
7 | 3833 if (l > n - i) |
3834 l = n - i; | |
3835 cdiff = STRNCMP(s1 + i, s2 + i, l); | |
3836 if (cdiff != 0) | |
3837 return cdiff; | |
3838 } | |
3839 } | |
3840 } | |
3841 return 0; | |
3842 } | |
3843 | |
3844 /* | |
3845 * "g8": show bytes of the UTF-8 char under the cursor. Doesn't matter what | |
3846 * 'encoding' has been set to. | |
3847 */ | |
3848 void | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3849 show_utf8(void) |
7 | 3850 { |
3851 int len; | |
273 | 3852 int rlen = 0; |
7 | 3853 char_u *line; |
3854 int clen; | |
3855 int i; | |
3856 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3857 // Get the byte length of the char under the cursor, including composing |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3858 // characters. |
7 | 3859 line = ml_get_cursor(); |
474 | 3860 len = utfc_ptr2len(line); |
7 | 3861 if (len == 0) |
3862 { | |
15543
dd725a8ab112
patch 8.1.0779: argument for message functions is inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
15474
diff
changeset
|
3863 msg("NUL"); |
7 | 3864 return; |
3865 } | |
3866 | |
3867 clen = 0; | |
3868 for (i = 0; i < len; ++i) | |
3869 { | |
3870 if (clen == 0) | |
3871 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3872 // start of (composing) character, get its length |
7 | 3873 if (i > 0) |
273 | 3874 { |
3875 STRCPY(IObuff + rlen, "+ "); | |
3876 rlen += 2; | |
3877 } | |
474 | 3878 clen = utf_ptr2len(line + i); |
7 | 3879 } |
2205
54605ada811b
"g8" doesn't work properly on a NUL.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
3880 sprintf((char *)IObuff + rlen, "%02x ", |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3881 (line[i] == NL) ? NUL : line[i]); // NUL is stored as NL |
7 | 3882 --clen; |
835 | 3883 rlen += (int)STRLEN(IObuff + rlen); |
273 | 3884 if (rlen > IOSIZE - 20) |
3885 break; | |
7 | 3886 } |
3887 | |
15543
dd725a8ab112
patch 8.1.0779: argument for message functions is inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
15474
diff
changeset
|
3888 msg((char *)IObuff); |
7 | 3889 } |
3890 | |
3891 /* | |
3892 * mb_head_off() function pointer. | |
3893 * Return offset from "p" to the first byte of the character it points into. | |
2015 | 3894 * If "p" points to the NUL at the end of the string return 0. |
7 | 3895 * Returns 0 when already at the first byte of a character. |
3896 */ | |
3897 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3898 latin_head_off(char_u *base UNUSED, char_u *p UNUSED) |
7 | 3899 { |
3900 return 0; | |
3901 } | |
3902 | |
18051
d1e77015f60b
patch 8.1.2021: some global functions can be local to the file
Bram Moolenaar <Bram@vim.org>
parents:
18014
diff
changeset
|
3903 static int |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3904 dbcs_head_off(char_u *base, char_u *p) |
7 | 3905 { |
3906 char_u *q; | |
3907 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3908 // It can't be a trailing byte when not using DBCS, at the start of the |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3909 // string or the previous byte can't start a double-byte. |
2015 | 3910 if (p <= base || MB_BYTE2LEN(p[-1]) == 1 || *p == NUL) |
7 | 3911 return 0; |
3912 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3913 // This is slow: need to start at the base and go forward until the |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3914 // byte we are looking for. Return 1 when we went past it, 0 otherwise. |
7 | 3915 q = base; |
3916 while (q < p) | |
474 | 3917 q += dbcs_ptr2len(q); |
7 | 3918 return (q == p) ? 0 : 1; |
3919 } | |
3920 | |
3921 /* | |
3922 * Special version of dbcs_head_off() that works for ScreenLines[], where | |
3923 * single-width DBCS_JPNU characters are stored separately. | |
3924 */ | |
3925 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3926 dbcs_screen_head_off(char_u *base, char_u *p) |
7 | 3927 { |
3928 char_u *q; | |
3929 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3930 // It can't be a trailing byte when not using DBCS, at the start of the |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3931 // string or the previous byte can't start a double-byte. |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3932 // For euc-jp an 0x8e byte in the previous cell always means we have a |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3933 // lead byte in the current cell. |
7 | 3934 if (p <= base |
3935 || (enc_dbcs == DBCS_JPNU && p[-1] == 0x8e) | |
2015 | 3936 || MB_BYTE2LEN(p[-1]) == 1 |
3937 || *p == NUL) | |
7 | 3938 return 0; |
3939 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3940 // This is slow: need to start at the base and go forward until the |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3941 // byte we are looking for. Return 1 when we went past it, 0 otherwise. |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3942 // For DBCS_JPNU look out for 0x8e, which means the second byte is not |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3943 // stored as the next byte. |
7 | 3944 q = base; |
3945 while (q < p) | |
3946 { | |
3947 if (enc_dbcs == DBCS_JPNU && *q == 0x8e) | |
3948 ++q; | |
3949 else | |
474 | 3950 q += dbcs_ptr2len(q); |
7 | 3951 } |
3952 return (q == p) ? 0 : 1; | |
3953 } | |
3954 | |
26592
9f445e07f766
patch 8.2.3825: various comments could be improved
Bram Moolenaar <Bram@vim.org>
parents:
26075
diff
changeset
|
3955 /* |
9f445e07f766
patch 8.2.3825: various comments could be improved
Bram Moolenaar <Bram@vim.org>
parents:
26075
diff
changeset
|
3956 * Return offset from "p" to the start of a character, including composing |
9f445e07f766
patch 8.2.3825: various comments could be improved
Bram Moolenaar <Bram@vim.org>
parents:
26075
diff
changeset
|
3957 * characters. "base" must be the start of the string, which must be NUL |
9f445e07f766
patch 8.2.3825: various comments could be improved
Bram Moolenaar <Bram@vim.org>
parents:
26075
diff
changeset
|
3958 * terminated. |
9f445e07f766
patch 8.2.3825: various comments could be improved
Bram Moolenaar <Bram@vim.org>
parents:
26075
diff
changeset
|
3959 */ |
7 | 3960 int |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3961 utf_head_off(char_u *base, char_u *p) |
7 | 3962 { |
3963 char_u *q; | |
3964 char_u *s; | |
3965 int c; | |
2015 | 3966 int len; |
7 | 3967 #ifdef FEAT_ARABIC |
3968 char_u *j; | |
3969 #endif | |
3970 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3971 if (*p < 0x80) // be quick for ASCII |
7 | 3972 return 0; |
3973 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3974 // Skip backwards over trailing bytes: 10xx.xxxx |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3975 // Skip backwards again if on a composing char. |
7 | 3976 for (q = p; ; --q) |
3977 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3978 // Move s to the last byte of this char. |
7 | 3979 for (s = q; (s[1] & 0xc0) == 0x80; ++s) |
3980 ; | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3981 // Move q to the first byte of this char. |
7 | 3982 while (q > base && (*q & 0xc0) == 0x80) |
3983 --q; | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3984 // Check for illegal sequence. Do allow an illegal byte after where we |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3985 // started. |
2015 | 3986 len = utf8len_tab[*q]; |
3987 if (len != (int)(s - q + 1) && len != (int)(p - q + 1)) | |
7 | 3988 return 0; |
3989 | |
3990 if (q <= base) | |
3991 break; | |
3992 | |
3993 c = utf_ptr2char(q); | |
3994 if (utf_iscomposing(c)) | |
3995 continue; | |
3996 | |
3997 #ifdef FEAT_ARABIC | |
3998 if (arabic_maycombine(c)) | |
3999 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4000 // Advance to get a sneak-peak at the next char |
7 | 4001 j = q; |
4002 --j; | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4003 // Move j to the first byte of this char. |
7 | 4004 while (j > base && (*j & 0xc0) == 0x80) |
4005 --j; | |
4006 if (arabic_combine(utf_ptr2char(j), c)) | |
4007 continue; | |
4008 } | |
4009 #endif | |
4010 break; | |
4011 } | |
4012 | |
4013 return (int)(p - q); | |
4014 } | |
4015 | |
4016 /* | |
20695
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4017 * Whether space is NOT allowed before/after 'c'. |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4018 */ |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4019 int |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4020 utf_eat_space(int cc) |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4021 { |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4022 return ((cc >= 0x2000 && cc <= 0x206F) // General punctuations |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4023 || (cc >= 0x2e00 && cc <= 0x2e7f) // Supplemental punctuations |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4024 || (cc >= 0x3000 && cc <= 0x303f) // CJK symbols and punctuations |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4025 || (cc >= 0xff01 && cc <= 0xff0f) // Full width ASCII punctuations |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4026 || (cc >= 0xff1a && cc <= 0xff20) // .. |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4027 || (cc >= 0xff3b && cc <= 0xff40) // .. |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4028 || (cc >= 0xff5b && cc <= 0xff65)); // .. |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4029 } |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4030 |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4031 /* |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4032 * Whether line break is allowed before "cc". |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4033 */ |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4034 int |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4035 utf_allow_break_before(int cc) |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4036 { |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4037 static const int BOL_prohibition_punct[] = |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4038 { |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4039 '!', |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4040 '%', |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4041 ')', |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4042 ',', |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4043 ':', |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4044 ';', |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4045 '>', |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4046 '?', |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4047 ']', |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4048 '}', |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4049 0x2019, // ’ right single quotation mark |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4050 0x201d, // ” right double quotation mark |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4051 0x2020, // † dagger |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4052 0x2021, // ‡ double dagger |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4053 0x2026, // … horizontal ellipsis |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4054 0x2030, // ‰ per mille sign |
33223
def9fc5c92d1
patch 9.0.1886: Various Typos
Christian Brabandt <cb@256bit.org>
parents:
32120
diff
changeset
|
4055 0x2031, // ‱ per ten thousand sign |
20695
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4056 0x203c, // ‼ double exclamation mark |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4057 0x2047, // ⁇ double question mark |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4058 0x2048, // ⁈ question exclamation mark |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4059 0x2049, // ⁉ exclamation question mark |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4060 0x2103, // ℃ degree celsius |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4061 0x2109, // ℉ degree fahrenheit |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4062 0x3001, // 、 ideographic comma |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4063 0x3002, // 。 ideographic full stop |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4064 0x3009, // 〉 right angle bracket |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4065 0x300b, // 》 right double angle bracket |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4066 0x300d, // 」 right corner bracket |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4067 0x300f, // 』 right white corner bracket |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4068 0x3011, // 】 right black lenticular bracket |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4069 0x3015, // 〕 right tortoise shell bracket |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4070 0x3017, // 〗 right white lenticular bracket |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4071 0x3019, // 〙 right white tortoise shell bracket |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4072 0x301b, // 〛 right white square bracket |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4073 0xff01, // ! fullwidth exclamation mark |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4074 0xff09, // ) fullwidth right parenthesis |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4075 0xff0c, // , fullwidth comma |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4076 0xff0e, // . fullwidth full stop |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4077 0xff1a, // : fullwidth colon |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4078 0xff1b, // ; fullwidth semicolon |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4079 0xff1f, // ? fullwidth question mark |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4080 0xff3d, // ] fullwidth right square bracket |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4081 0xff5d, // } fullwidth right curly bracket |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4082 }; |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4083 |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4084 int first = 0; |
24768
7334bf933510
patch 8.2.2922: computing array length is done in various ways
Bram Moolenaar <Bram@vim.org>
parents:
24754
diff
changeset
|
4085 int last = ARRAY_LENGTH(BOL_prohibition_punct) - 1; |
20695
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4086 int mid = 0; |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4087 |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4088 while (first < last) |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4089 { |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4090 mid = (first + last)/2; |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4091 |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4092 if (cc == BOL_prohibition_punct[mid]) |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4093 return FALSE; |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4094 else if (cc > BOL_prohibition_punct[mid]) |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4095 first = mid + 1; |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4096 else |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4097 last = mid - 1; |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4098 } |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4099 |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4100 return cc != BOL_prohibition_punct[first]; |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4101 } |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4102 |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4103 /* |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4104 * Whether line break is allowed after "cc". |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4105 */ |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4106 static int |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4107 utf_allow_break_after(int cc) |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4108 { |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4109 static const int EOL_prohibition_punct[] = |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4110 { |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4111 '(', |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4112 '<', |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4113 '[', |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4114 '`', |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4115 '{', |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4116 //0x2014, // — em dash |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4117 0x2018, // ‘ left single quotation mark |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4118 0x201c, // “ left double quotation mark |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4119 //0x2053, // ~ swung dash |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4120 0x3008, // 〈 left angle bracket |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4121 0x300a, // 《 left double angle bracket |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4122 0x300c, // 「 left corner bracket |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4123 0x300e, // 『 left white corner bracket |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4124 0x3010, // 【 left black lenticular bracket |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4125 0x3014, // 〔 left tortoise shell bracket |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4126 0x3016, // 〖 left white lenticular bracket |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4127 0x3018, // 〘 left white tortoise shell bracket |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4128 0x301a, // 〚 left white square bracket |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4129 0xff08, // ( fullwidth left parenthesis |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4130 0xff3b, // [ fullwidth left square bracket |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4131 0xff5b, // { fullwidth left curly bracket |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4132 }; |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4133 |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4134 int first = 0; |
24768
7334bf933510
patch 8.2.2922: computing array length is done in various ways
Bram Moolenaar <Bram@vim.org>
parents:
24754
diff
changeset
|
4135 int last = ARRAY_LENGTH(EOL_prohibition_punct) - 1; |
20695
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4136 int mid = 0; |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4137 |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4138 while (first < last) |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4139 { |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4140 mid = (first + last)/2; |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4141 |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4142 if (cc == EOL_prohibition_punct[mid]) |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4143 return FALSE; |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4144 else if (cc > EOL_prohibition_punct[mid]) |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4145 first = mid + 1; |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4146 else |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4147 last = mid - 1; |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4148 } |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4149 |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4150 return cc != EOL_prohibition_punct[first]; |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4151 } |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4152 |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4153 /* |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4154 * Whether line break is allowed between "cc" and "ncc". |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4155 */ |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4156 int |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4157 utf_allow_break(int cc, int ncc) |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4158 { |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4159 // don't break between two-letter punctuations |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4160 if (cc == ncc |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4161 && (cc == 0x2014 // em dash |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4162 || cc == 0x2026)) // horizontal ellipsis |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4163 return FALSE; |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4164 |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4165 return utf_allow_break_after(cc) && utf_allow_break_before(ncc); |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4166 } |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4167 |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4168 /* |
99 | 4169 * Copy a character from "*fp" to "*tp" and advance the pointers. |
4170 */ | |
4171 void | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4172 mb_copy_char(char_u **fp, char_u **tp) |
99 | 4173 { |
474 | 4174 int l = (*mb_ptr2len)(*fp); |
99 | 4175 |
4176 mch_memmove(*tp, *fp, (size_t)l); | |
4177 *tp += l; | |
4178 *fp += l; | |
4179 } | |
4180 | |
4181 /* | |
7 | 4182 * Return the offset from "p" to the first byte of a character. When "p" is |
4183 * at the start of a character 0 is returned, otherwise the offset to the next | |
4184 * character. Can start anywhere in a stream of bytes. | |
4185 */ | |
4186 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4187 mb_off_next(char_u *base, char_u *p) |
7 | 4188 { |
4189 int i; | |
4190 int j; | |
4191 | |
4192 if (enc_utf8) | |
4193 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4194 if (*p < 0x80) // be quick for ASCII |
7 | 4195 return 0; |
4196 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4197 // Find the next character that isn't 10xx.xxxx |
7 | 4198 for (i = 0; (p[i] & 0xc0) == 0x80; ++i) |
4199 ; | |
4200 if (i > 0) | |
4201 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4202 // Check for illegal sequence. |
7 | 4203 for (j = 0; p - j > base; ++j) |
4204 if ((p[-j] & 0xc0) != 0x80) | |
4205 break; | |
4206 if (utf8len_tab[p[-j]] != i + j) | |
4207 return 0; | |
4208 } | |
4209 return i; | |
4210 } | |
4211 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4212 // Only need to check if we're on a trail byte, it doesn't matter if we |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4213 // want the offset to the next or current character. |
7 | 4214 return (*mb_head_off)(base, p); |
4215 } | |
4216 | |
4217 /* | |
4218 * Return the offset from "p" to the last byte of the character it points | |
4219 * into. Can start anywhere in a stream of bytes. | |
26592
9f445e07f766
patch 8.2.3825: various comments could be improved
Bram Moolenaar <Bram@vim.org>
parents:
26075
diff
changeset
|
4220 * Composing characters are not included. |
7 | 4221 */ |
4222 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4223 mb_tail_off(char_u *base, char_u *p) |
7 | 4224 { |
4225 int i; | |
4226 int j; | |
4227 | |
4228 if (*p == NUL) | |
4229 return 0; | |
4230 | |
4231 if (enc_utf8) | |
4232 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4233 // Find the last character that is 10xx.xxxx |
7 | 4234 for (i = 0; (p[i + 1] & 0xc0) == 0x80; ++i) |
4235 ; | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4236 // Check for illegal sequence. |
7 | 4237 for (j = 0; p - j > base; ++j) |
4238 if ((p[-j] & 0xc0) != 0x80) | |
4239 break; | |
4240 if (utf8len_tab[p[-j]] != i + j + 1) | |
4241 return 0; | |
4242 return i; | |
4243 } | |
4244 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4245 // It can't be the first byte if a double-byte when not using DBCS, at the |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4246 // end of the string or the byte can't start a double-byte. |
7 | 4247 if (enc_dbcs == 0 || p[1] == NUL || MB_BYTE2LEN(*p) == 1) |
4248 return 0; | |
4249 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4250 // Return 1 when on the lead byte, 0 when on the tail byte. |
7 | 4251 return 1 - dbcs_head_off(base, p); |
4252 } | |
4253 | |
776 | 4254 /* |
4255 * Find the next illegal byte sequence. | |
4256 */ | |
4257 void | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4258 utf_find_illegal(void) |
776 | 4259 { |
4260 pos_T pos = curwin->w_cursor; | |
4261 char_u *p; | |
4262 int len; | |
4263 vimconv_T vimconv; | |
4264 char_u *tofree = NULL; | |
4265 | |
4266 vimconv.vc_type = CONV_NONE; | |
4267 if (enc_utf8 && (enc_canon_props(curbuf->b_p_fenc) & ENC_8BIT)) | |
4268 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4269 // 'encoding' is "utf-8" but we are editing a 8-bit encoded file, |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4270 // possibly a utf-8 file with illegal bytes. Setup for conversion |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4271 // from utf-8 to 'fileencoding'. |
776 | 4272 convert_setup(&vimconv, p_enc, curbuf->b_p_fenc); |
4273 } | |
4274 | |
4275 curwin->w_cursor.coladd = 0; | |
4276 for (;;) | |
4277 { | |
4278 p = ml_get_cursor(); | |
4279 if (vimconv.vc_type != CONV_NONE) | |
4280 { | |
4281 vim_free(tofree); | |
4282 tofree = string_convert(&vimconv, p, NULL); | |
4283 if (tofree == NULL) | |
4284 break; | |
4285 p = tofree; | |
4286 } | |
4287 | |
4288 while (*p != NUL) | |
4289 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4290 // Illegal means that there are not enough trail bytes (checked by |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4291 // utf_ptr2len()) or too many of them (overlong sequence). |
776 | 4292 len = utf_ptr2len(p); |
4293 if (*p >= 0x80 && (len == 1 | |
4294 || utf_char2len(utf_ptr2char(p)) != len)) | |
4295 { | |
4296 if (vimconv.vc_type == CONV_NONE) | |
835 | 4297 curwin->w_cursor.col += (colnr_T)(p - ml_get_cursor()); |
776 | 4298 else |
4299 { | |
4300 int l; | |
4301 | |
835 | 4302 len = (int)(p - tofree); |
776 | 4303 for (p = ml_get_cursor(); *p != NUL && len-- > 0; p += l) |
4304 { | |
4305 l = utf_ptr2len(p); | |
4306 curwin->w_cursor.col += l; | |
4307 } | |
4308 } | |
4309 goto theend; | |
4310 } | |
4311 p += len; | |
4312 } | |
4313 if (curwin->w_cursor.lnum == curbuf->b_ml.ml_line_count) | |
4314 break; | |
4315 ++curwin->w_cursor.lnum; | |
4316 curwin->w_cursor.col = 0; | |
4317 } | |
4318 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4319 // didn't find it: don't move and beep |
776 | 4320 curwin->w_cursor = pos; |
4321 beep_flush(); | |
4322 | |
4323 theend: | |
4324 vim_free(tofree); | |
4325 convert_setup(&vimconv, NULL, NULL); | |
4326 } | |
4327 | |
28790
a161c262e947
patch 8.2.4919: can add invalid bytes with :spellgood
Bram Moolenaar <Bram@vim.org>
parents:
28423
diff
changeset
|
4328 #if defined(FEAT_GUI_GTK) || defined(FEAT_SPELL) || defined(PROTO) |
26 | 4329 /* |
4330 * Return TRUE if string "s" is a valid utf-8 string. | |
29387
9dce192d1ac2
patch 9.0.0036: 'fillchars' cannot have window-local values
Bram Moolenaar <Bram@vim.org>
parents:
29105
diff
changeset
|
4331 * When "end" is NULL stop at the first NUL. Otherwise stop at "end". |
26 | 4332 */ |
4333 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4334 utf_valid_string(char_u *s, char_u *end) |
26 | 4335 { |
4336 int l; | |
4337 char_u *p = s; | |
4338 | |
4339 while (end == NULL ? *p != NUL : p < end) | |
4340 { | |
2015 | 4341 l = utf8len_tab_zero[*p]; |
4342 if (l == 0) | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4343 return FALSE; // invalid lead byte |
26 | 4344 if (end != NULL && p + l > end) |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4345 return FALSE; // incomplete byte sequence |
26 | 4346 ++p; |
4347 while (--l > 0) | |
4348 if ((*p++ & 0xc0) != 0x80) | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4349 return FALSE; // invalid trail byte |
26 | 4350 } |
4351 return TRUE; | |
4352 } | |
4353 #endif | |
4354 | |
7 | 4355 #if defined(FEAT_GUI) || defined(PROTO) |
4356 /* | |
4357 * Special version of mb_tail_off() for use in ScreenLines[]. | |
4358 */ | |
4359 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4360 dbcs_screen_tail_off(char_u *base, char_u *p) |
7 | 4361 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4362 // It can't be the first byte if a double-byte when not using DBCS, at the |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4363 // end of the string or the byte can't start a double-byte. |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4364 // For euc-jp an 0x8e byte always means we have a lead byte in the current |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4365 // cell. |
7 | 4366 if (*p == NUL || p[1] == NUL |
4367 || (enc_dbcs == DBCS_JPNU && *p == 0x8e) | |
4368 || MB_BYTE2LEN(*p) == 1) | |
4369 return 0; | |
4370 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4371 // Return 1 when on the lead byte, 0 when on the tail byte. |
7 | 4372 return 1 - dbcs_screen_head_off(base, p); |
4373 } | |
4374 #endif | |
4375 | |
4376 /* | |
4377 * If the cursor moves on an trail byte, set the cursor on the lead byte. | |
4378 * Thus it moves left if necessary. | |
4379 * Return TRUE when the cursor was adjusted. | |
4380 */ | |
4381 void | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4382 mb_adjust_cursor(void) |
7 | 4383 { |
2933 | 4384 mb_adjustpos(curbuf, &curwin->w_cursor); |
7 | 4385 } |
4386 | |
4387 /* | |
4388 * Adjust position "*lp" to point to the first byte of a multi-byte character. | |
4389 * If it points to a tail byte it's moved backwards to the head byte. | |
4390 */ | |
4391 void | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4392 mb_adjustpos(buf_T *buf, pos_T *lp) |
7 | 4393 { |
4394 char_u *p; | |
4395 | |
15636
6f1c7e9a6393
patch 8.1.0826: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15597
diff
changeset
|
4396 if (lp->col > 0 || lp->coladd > 1) |
7 | 4397 { |
2933 | 4398 p = ml_get_buf(buf, lp->lnum, FALSE); |
13117
cfaa513efa3f
patch 8.0.1433: illegal memory access after undo
Christian Brabandt <cb@256bit.org>
parents:
12948
diff
changeset
|
4399 if (*p == NUL || (int)STRLEN(p) < lp->col) |
cfaa513efa3f
patch 8.0.1433: illegal memory access after undo
Christian Brabandt <cb@256bit.org>
parents:
12948
diff
changeset
|
4400 lp->col = 0; |
cfaa513efa3f
patch 8.0.1433: illegal memory access after undo
Christian Brabandt <cb@256bit.org>
parents:
12948
diff
changeset
|
4401 else |
cfaa513efa3f
patch 8.0.1433: illegal memory access after undo
Christian Brabandt <cb@256bit.org>
parents:
12948
diff
changeset
|
4402 lp->col -= (*mb_head_off)(p, p + lp->col); |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4403 // Reset "coladd" when the cursor would be on the right half of a |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4404 // double-wide character. |
7 | 4405 if (lp->coladd == 1 |
4406 && p[lp->col] != TAB | |
4407 && vim_isprintc((*mb_ptr2char)(p + lp->col)) | |
4408 && ptr2cells(p + lp->col) > 1) | |
4409 lp->coladd = 0; | |
4410 } | |
4411 } | |
4412 | |
4413 /* | |
4414 * Return a pointer to the character before "*p", if there is one. | |
4415 */ | |
4416 char_u * | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4417 mb_prevptr( |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4418 char_u *line, // start of the string |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4419 char_u *p) |
7 | 4420 { |
4421 if (p > line) | |
11127
506f5d8b7d8b
patch 8.0.0451: some macros are in lower case
Christian Brabandt <cb@256bit.org>
parents:
10724
diff
changeset
|
4422 MB_PTR_BACK(line, p); |
7 | 4423 return p; |
4424 } | |
4425 | |
4426 /* | |
474 | 4427 * Return the character length of "str". Each multi-byte character (with |
4428 * following composing characters) counts as one. | |
7 | 4429 */ |
4430 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4431 mb_charlen(char_u *str) |
7 | 4432 { |
500 | 4433 char_u *p = str; |
4434 int count; | |
4435 | |
4436 if (p == NULL) | |
7 | 4437 return 0; |
4438 | |
500 | 4439 for (count = 0; *p != NUL; count++) |
4440 p += (*mb_ptr2len)(p); | |
7 | 4441 |
4442 return count; | |
4443 } | |
4444 | |
500 | 4445 /* |
4446 * Like mb_charlen() but for a string with specified length. | |
4447 */ | |
4448 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4449 mb_charlen_len(char_u *str, int len) |
500 | 4450 { |
4451 char_u *p = str; | |
4452 int count; | |
4453 | |
4454 for (count = 0; *p != NUL && p < str + len; count++) | |
4455 p += (*mb_ptr2len)(p); | |
4456 | |
4457 return count; | |
4458 } | |
4459 | |
7 | 4460 /* |
4461 * Try to un-escape a multi-byte character. | |
4462 * Used for the "to" and "from" part of a mapping. | |
4463 * Return the un-escaped string if it is a multi-byte character, and advance | |
4464 * "pp" to just after the bytes that formed it. | |
4465 * Return NULL if no multi-byte char was found. | |
4466 */ | |
4467 char_u * | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4468 mb_unescape(char_u **pp) |
7 | 4469 { |
3812 | 4470 static char_u buf[6]; |
4471 int n; | |
4472 int m = 0; | |
7 | 4473 char_u *str = *pp; |
4474 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4475 // Must translate K_SPECIAL KS_SPECIAL KE_FILLER to K_SPECIAL and CSI |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4476 // KS_EXTRA KE_CSI to CSI. |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4477 // Maximum length of a utf-8 character is 4 bytes. |
3812 | 4478 for (n = 0; str[n] != NUL && m < 4; ++n) |
7 | 4479 { |
4480 if (str[n] == K_SPECIAL | |
4481 && str[n + 1] == KS_SPECIAL | |
4482 && str[n + 2] == KE_FILLER) | |
4483 { | |
4484 buf[m++] = K_SPECIAL; | |
4485 n += 2; | |
4486 } | |
1495 | 4487 else if ((str[n] == K_SPECIAL |
7 | 4488 # ifdef FEAT_GUI |
1495 | 4489 || str[n] == CSI |
4490 # endif | |
4491 ) | |
7 | 4492 && str[n + 1] == KS_EXTRA |
4493 && str[n + 2] == (int)KE_CSI) | |
4494 { | |
4495 buf[m++] = CSI; | |
4496 n += 2; | |
4497 } | |
4498 else if (str[n] == K_SPECIAL | |
4499 # ifdef FEAT_GUI | |
4500 || str[n] == CSI | |
4501 # endif | |
4502 ) | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4503 break; // a special key can't be a multibyte char |
7 | 4504 else |
4505 buf[m++] = str[n]; | |
4506 buf[m] = NUL; | |
4507 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4508 // Return a multi-byte character if it's found. An illegal sequence |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4509 // will result in a 1 here. |
474 | 4510 if ((*mb_ptr2len)(buf) > 1) |
7 | 4511 { |
4512 *pp = str + n + 1; | |
4513 return buf; | |
4514 } | |
3812 | 4515 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4516 // Bail out quickly for ASCII. |
3812 | 4517 if (buf[0] < 128) |
4518 break; | |
7 | 4519 } |
4520 return NULL; | |
4521 } | |
4522 | |
4523 /* | |
4524 * Return TRUE if the character at "row"/"col" on the screen is the left side | |
4525 * of a double-width character. | |
4526 * Caller must make sure "row" and "col" are not invalid! | |
4527 */ | |
4528 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4529 mb_lefthalve(int row, int col) |
7 | 4530 { |
1378 | 4531 return (*mb_off2cells)(LineOffset[row] + col, |
4532 LineOffset[row] + screen_Columns) > 1; | |
7 | 4533 } |
4534 | |
4535 /* | |
1698 | 4536 * Correct a position on the screen, if it's the right half of a double-wide |
4537 * char move it to the left half. Returns the corrected column. | |
7 | 4538 */ |
4539 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4540 mb_fix_col(int col, int row) |
7 | 4541 { |
17312
484424955bfa
patch 8.1.1655: popup window border drawn wrong with multi-byte char
Bram Moolenaar <Bram@vim.org>
parents:
17296
diff
changeset
|
4542 int off; |
484424955bfa
patch 8.1.1655: popup window border drawn wrong with multi-byte char
Bram Moolenaar <Bram@vim.org>
parents:
17296
diff
changeset
|
4543 |
7 | 4544 col = check_col(col); |
4545 row = check_row(row); | |
17312
484424955bfa
patch 8.1.1655: popup window border drawn wrong with multi-byte char
Bram Moolenaar <Bram@vim.org>
parents:
17296
diff
changeset
|
4546 off = LineOffset[row] + col; |
7 | 4547 if (has_mbyte && ScreenLines != NULL && col > 0 |
4548 && ((enc_dbcs | |
17312
484424955bfa
patch 8.1.1655: popup window border drawn wrong with multi-byte char
Bram Moolenaar <Bram@vim.org>
parents:
17296
diff
changeset
|
4549 && ScreenLines[off] != NUL |
7 | 4550 && dbcs_screen_head_off(ScreenLines + LineOffset[row], |
17312
484424955bfa
patch 8.1.1655: popup window border drawn wrong with multi-byte char
Bram Moolenaar <Bram@vim.org>
parents:
17296
diff
changeset
|
4551 ScreenLines + off)) |
484424955bfa
patch 8.1.1655: popup window border drawn wrong with multi-byte char
Bram Moolenaar <Bram@vim.org>
parents:
17296
diff
changeset
|
4552 || (enc_utf8 && ScreenLines[off] == 0 |
484424955bfa
patch 8.1.1655: popup window border drawn wrong with multi-byte char
Bram Moolenaar <Bram@vim.org>
parents:
17296
diff
changeset
|
4553 && ScreenLinesUC[off] == 0))) |
1620 | 4554 return col - 1; |
7 | 4555 return col; |
4556 } | |
15597
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
4557 |
7803
37c929c4a073
commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents:
7734
diff
changeset
|
4558 static int enc_alias_search(char_u *name); |
7 | 4559 |
4560 /* | |
4561 * Skip the Vim specific head of a 'encoding' name. | |
4562 */ | |
4563 char_u * | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4564 enc_skip(char_u *p) |
7 | 4565 { |
4566 if (STRNCMP(p, "2byte-", 6) == 0) | |
4567 return p + 6; | |
4568 if (STRNCMP(p, "8bit-", 5) == 0) | |
4569 return p + 5; | |
4570 return p; | |
4571 } | |
4572 | |
4573 /* | |
4574 * Find the canonical name for encoding "enc". | |
4575 * When the name isn't recognized, returns "enc" itself, but with all lower | |
4576 * case characters and '_' replaced with '-'. | |
4577 * Returns an allocated string. NULL for out-of-memory. | |
4578 */ | |
4579 char_u * | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4580 enc_canonize(char_u *enc) |
7 | 4581 { |
4582 char_u *r; | |
4583 char_u *p, *s; | |
4584 int i; | |
4585 | |
39 | 4586 if (STRCMP(enc, "default") == 0) |
4587 { | |
24754
a4cb7499fa11
patch 8.2.2915: MS-Windows: when using "default" for encoding utf-8 is used
Bram Moolenaar <Bram@vim.org>
parents:
24747
diff
changeset
|
4588 #ifdef MSWIN |
a4cb7499fa11
patch 8.2.2915: MS-Windows: when using "default" for encoding utf-8 is used
Bram Moolenaar <Bram@vim.org>
parents:
24747
diff
changeset
|
4589 // Use the system encoding, the default is always utf-8. |
a4cb7499fa11
patch 8.2.2915: MS-Windows: when using "default" for encoding utf-8 is used
Bram Moolenaar <Bram@vim.org>
parents:
24747
diff
changeset
|
4590 r = enc_locale(); |
a4cb7499fa11
patch 8.2.2915: MS-Windows: when using "default" for encoding utf-8 is used
Bram Moolenaar <Bram@vim.org>
parents:
24747
diff
changeset
|
4591 #else |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4592 // Use the default encoding as it's found by set_init_1(). |
39 | 4593 r = get_encoding_default(); |
24754
a4cb7499fa11
patch 8.2.2915: MS-Windows: when using "default" for encoding utf-8 is used
Bram Moolenaar <Bram@vim.org>
parents:
24747
diff
changeset
|
4594 #endif |
39 | 4595 if (r == NULL) |
24747
7da496081b91
patch 8.2.2912: MS-Windows: most users expect using Unicode
Bram Moolenaar <Bram@vim.org>
parents:
24381
diff
changeset
|
4596 r = (char_u *)ENC_DFLT; |
39 | 4597 return vim_strsave(r); |
4598 } | |
4599 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4600 // copy "enc" to allocated memory, with room for two '-' |
16764
ef00b6bc186b
patch 8.1.1384: using "int" for alloc() often results in compiler warnings
Bram Moolenaar <Bram@vim.org>
parents:
16451
diff
changeset
|
4601 r = alloc(STRLEN(enc) + 3); |
31728
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4602 if (r == NULL) |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4603 return NULL; |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4604 |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4605 // Make it all lower case and replace '_' with '-'. |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4606 p = r; |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4607 for (s = enc; *s != NUL; ++s) |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4608 { |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4609 if (*s == '_') |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4610 *p++ = '-'; |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4611 else |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4612 *p++ = TOLOWER_ASC(*s); |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4613 } |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4614 *p = NUL; |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4615 |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4616 // Skip "2byte-" and "8bit-". |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4617 p = enc_skip(r); |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4618 |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4619 // Change "microsoft-cp" to "cp". Used in some spell files. |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4620 if (STRNCMP(p, "microsoft-cp", 12) == 0) |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4621 STRMOVE(p, p + 10); |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4622 |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4623 // "iso8859" -> "iso-8859" |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4624 if (STRNCMP(p, "iso8859", 7) == 0) |
7 | 4625 { |
31728
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4626 STRMOVE(p + 4, p + 3); |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4627 p[3] = '-'; |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4628 } |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4629 |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4630 // "iso-8859n" -> "iso-8859-n" |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4631 if (STRNCMP(p, "iso-8859", 8) == 0 && isdigit(p[8])) |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4632 { |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4633 STRMOVE(p + 9, p + 8); |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4634 p[8] = '-'; |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4635 } |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4636 |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4637 // "latin-N" -> "latinN" |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4638 if (STRNCMP(p, "latin-", 6) == 0) |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4639 STRMOVE(p + 5, p + 6); |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4640 |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4641 if (enc_canon_search(p) >= 0) |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4642 { |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4643 // canonical name can be used unmodified |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4644 if (p != r) |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4645 STRMOVE(r, p); |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4646 } |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4647 else if ((i = enc_alias_search(p)) >= 0) |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4648 { |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4649 // alias recognized, get canonical name |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4650 vim_free(r); |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4651 r = vim_strsave((char_u *)enc_canon_table[i].name); |
7 | 4652 } |
4653 return r; | |
4654 } | |
4655 | |
4656 /* | |
4657 * Search for an encoding alias of "name". | |
4658 * Returns -1 when not found. | |
4659 */ | |
4660 static int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4661 enc_alias_search(char_u *name) |
7 | 4662 { |
4663 int i; | |
4664 | |
4665 for (i = 0; enc_alias_table[i].name != NULL; ++i) | |
4666 if (STRCMP(name, enc_alias_table[i].name) == 0) | |
4667 return enc_alias_table[i].canon; | |
4668 return -1; | |
4669 } | |
15597
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
4670 |
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
4671 |
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
4672 #ifdef HAVE_LANGINFO_H |
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
4673 # include <langinfo.h> |
7 | 4674 #endif |
4675 | |
16451
7ae2396cef62
patch 8.1.1230: a lot of code is shared between vim.exe and gvim.exe
Bram Moolenaar <Bram@vim.org>
parents:
16304
diff
changeset
|
4676 #if !defined(FEAT_GUI_MSWIN) || defined(VIMDLL) |
7 | 4677 /* |
12547
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4678 * Get the canonicalized encoding from the specified locale string "locale" |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4679 * or from the environment variables LC_ALL, LC_CTYPE and LANG. |
7 | 4680 * Returns an allocated string when successful, NULL when not. |
4681 */ | |
4682 char_u * | |
12547
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4683 enc_locale_env(char *locale) |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4684 { |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4685 char *s = locale; |
7 | 4686 char *p; |
4687 int i; | |
4688 char buf[50]; | |
4689 | |
4690 if (s == NULL || *s == NUL) | |
12547
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4691 if ((s = getenv("LC_ALL")) == NULL || *s == NUL) |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4692 if ((s = getenv("LC_CTYPE")) == NULL || *s == NUL) |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4693 s = getenv("LANG"); |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4694 |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4695 if (s == NULL || *s == NUL) |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4696 return NULL; |
7 | 4697 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4698 // The most generic locale format is: |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4699 // language[_territory][.codeset][@modifier][+special][,[sponsor][_revision]] |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4700 // If there is a '.' remove the part before it. |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4701 // if there is something after the codeset, remove it. |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4702 // Make the name lowercase and replace '_' with '-'. |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4703 // Exception: "ja_JP.EUC" == "euc-jp", "zh_CN.EUC" = "euc-cn", |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4704 // "ko_KR.EUC" == "euc-kr" |
7 | 4705 if ((p = (char *)vim_strchr((char_u *)s, '.')) != NULL) |
4706 { | |
4707 if (p > s + 2 && STRNICMP(p + 1, "EUC", 3) == 0 | |
4708 && !isalnum((int)p[4]) && p[4] != '-' && p[-3] == '_') | |
4709 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4710 // copy "XY.EUC" to "euc-XY" to buf[10] |
7 | 4711 STRCPY(buf + 10, "euc-"); |
4712 buf[14] = p[-2]; | |
4713 buf[15] = p[-1]; | |
4714 buf[16] = 0; | |
4715 s = buf + 10; | |
4716 } | |
4717 else | |
4718 s = p + 1; | |
4719 } | |
9495
c086632cca2e
commit https://github.com/vim/vim/commit/5498a41f5a62c3877fee0185adf3bf7245a9a547
Christian Brabandt <cb@256bit.org>
parents:
9477
diff
changeset
|
4720 for (i = 0; i < (int)sizeof(buf) - 1 && s[i] != NUL; ++i) |
7 | 4721 { |
4722 if (s[i] == '_' || s[i] == '-') | |
4723 buf[i] = '-'; | |
4724 else if (isalnum((int)s[i])) | |
4725 buf[i] = TOLOWER_ASC(s[i]); | |
4726 else | |
4727 break; | |
4728 } | |
4729 buf[i] = NUL; | |
4730 | |
4731 return enc_canonize((char_u *)buf); | |
4732 } | |
15597
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
4733 #endif |
12547
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4734 |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4735 /* |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4736 * Get the canonicalized encoding of the current locale. |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4737 * Returns an allocated string when successful, NULL when not. |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4738 */ |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4739 char_u * |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4740 enc_locale(void) |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4741 { |
15868
7fad90423bd2
patch 8.1.0941: macros for MS-Windows are inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
15636
diff
changeset
|
4742 #ifdef MSWIN |
12547
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4743 char buf[50]; |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4744 long acp = GetACP(); |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4745 |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4746 if (acp == 1200) |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4747 STRCPY(buf, "ucs-2le"); |
18014
82543df649ba
patch 8.1.2003: MS-Windows: code page 65001 is not recognized
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
4748 else if (acp == 1252) // cp1252 is used as latin1 |
12547
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4749 STRCPY(buf, "latin1"); |
18014
82543df649ba
patch 8.1.2003: MS-Windows: code page 65001 is not recognized
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
4750 else if (acp == 65001) |
82543df649ba
patch 8.1.2003: MS-Windows: code page 65001 is not recognized
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
4751 STRCPY(buf, "utf-8"); |
12547
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4752 else |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4753 sprintf(buf, "cp%ld", acp); |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4754 |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4755 return enc_canonize((char_u *)buf); |
15597
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
4756 #else |
12547
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4757 char *s; |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4758 |
15597
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
4759 # ifdef HAVE_NL_LANGINFO_CODESET |
12547
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4760 if ((s = nl_langinfo(CODESET)) == NULL || *s == NUL) |
15597
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
4761 # endif |
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
4762 # if defined(HAVE_LOCALE_H) || defined(X_LOCALE) |
12547
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4763 if ((s = setlocale(LC_CTYPE, NULL)) == NULL || *s == NUL) |
15597
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
4764 # endif |
12547
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4765 s = NULL; |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4766 |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4767 return enc_locale_env(s); |
15597
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
4768 #endif |
12547
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4769 } |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4770 |
15868
7fad90423bd2
patch 8.1.0941: macros for MS-Windows are inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
15636
diff
changeset
|
4771 # if defined(MSWIN) || defined(PROTO) || defined(FEAT_CYGWIN_WIN32_CLIPBOARD) |
7 | 4772 /* |
4773 * Convert an encoding name to an MS-Windows codepage. | |
4774 * Returns zero if no codepage can be figured out. | |
4775 */ | |
4776 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4777 encname2codepage(char_u *name) |
7 | 4778 { |
4779 int cp; | |
4780 char_u *p = name; | |
4781 int idx; | |
4782 | |
4783 if (STRNCMP(p, "8bit-", 5) == 0) | |
4784 p += 5; | |
4785 else if (STRNCMP(p_enc, "2byte-", 6) == 0) | |
4786 p += 6; | |
4787 | |
4788 if (p[0] == 'c' && p[1] == 'p') | |
5136
28e6f5f88968
updated for version 7.3.1311
Bram Moolenaar <bram@vim.org>
parents:
5025
diff
changeset
|
4789 cp = atoi((char *)p + 2); |
7 | 4790 else if ((idx = enc_canon_search(p)) >= 0) |
4791 cp = enc_canon_table[idx].codepage; | |
4792 else | |
4793 return 0; | |
4794 if (IsValidCodePage(cp)) | |
4795 return cp; | |
4796 return 0; | |
4797 } | |
12547
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4798 # endif |
7 | 4799 |
4800 # if defined(USE_ICONV) || defined(PROTO) | |
4801 | |
4802 /* | |
4803 * Call iconv_open() with a check if iconv() works properly (there are broken | |
4804 * versions). | |
4805 * Returns (void *)-1 if failed. | |
4806 * (should return iconv_t, but that causes problems with prototypes). | |
4807 */ | |
4808 void * | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4809 my_iconv_open(char_u *to, char_u *from) |
7 | 4810 { |
4811 iconv_t fd; | |
4812 #define ICONV_TESTLEN 400 | |
4813 char_u tobuf[ICONV_TESTLEN]; | |
4814 char *p; | |
4815 size_t tolen; | |
4816 static int iconv_ok = -1; | |
4817 | |
4818 if (iconv_ok == FALSE) | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4819 return (void *)-1; // detected a broken iconv() previously |
7 | 4820 |
4821 #ifdef DYNAMIC_ICONV | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4822 // Check if the iconv.dll can be found. |
7 | 4823 if (!iconv_enabled(TRUE)) |
4824 return (void *)-1; | |
4825 #endif | |
4826 | |
4827 fd = iconv_open((char *)enc_skip(to), (char *)enc_skip(from)); | |
4828 | |
4829 if (fd != (iconv_t)-1 && iconv_ok == -1) | |
4830 { | |
4831 /* | |
4832 * Do a dummy iconv() call to check if it actually works. There is a | |
4833 * version of iconv() on Linux that is broken. We can't ignore it, | |
4834 * because it's wide-spread. The symptoms are that after outputting | |
4835 * the initial shift state the "to" pointer is NULL and conversion | |
4836 * stops for no apparent reason after about 8160 characters. | |
4837 */ | |
4838 p = (char *)tobuf; | |
4839 tolen = ICONV_TESTLEN; | |
4840 (void)iconv(fd, NULL, NULL, &p, &tolen); | |
4841 if (p == NULL) | |
4842 { | |
4843 iconv_ok = FALSE; | |
4844 iconv_close(fd); | |
4845 fd = (iconv_t)-1; | |
4846 } | |
4847 else | |
4848 iconv_ok = TRUE; | |
4849 } | |
4850 | |
4851 return (void *)fd; | |
4852 } | |
4853 | |
4854 /* | |
4855 * Convert the string "str[slen]" with iconv(). | |
4856 * If "unconvlenp" is not NULL handle the string ending in an incomplete | |
4857 * sequence and set "*unconvlenp" to the length of it. | |
4858 * Returns the converted string in allocated memory. NULL for an error. | |
1904 | 4859 * If resultlenp is not NULL, sets it to the result length in bytes. |
7 | 4860 */ |
4861 static char_u * | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4862 iconv_string( |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4863 vimconv_T *vcp, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4864 char_u *str, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4865 int slen, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4866 int *unconvlenp, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4867 int *resultlenp) |
7 | 4868 { |
4869 const char *from; | |
4870 size_t fromlen; | |
4871 char *to; | |
4872 size_t tolen; | |
4873 size_t len = 0; | |
4874 size_t done = 0; | |
4875 char_u *result = NULL; | |
4876 char_u *p; | |
4877 int l; | |
4878 | |
4879 from = (char *)str; | |
4880 fromlen = slen; | |
4881 for (;;) | |
4882 { | |
4883 if (len == 0 || ICONV_ERRNO == ICONV_E2BIG) | |
4884 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4885 // Allocate enough room for most conversions. When re-allocating |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4886 // increase the buffer size. |
7 | 4887 len = len + fromlen * 2 + 40; |
16764
ef00b6bc186b
patch 8.1.1384: using "int" for alloc() often results in compiler warnings
Bram Moolenaar <Bram@vim.org>
parents:
16451
diff
changeset
|
4888 p = alloc(len); |
7 | 4889 if (p != NULL && done > 0) |
4890 mch_memmove(p, result, done); | |
4891 vim_free(result); | |
4892 result = p; | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4893 if (result == NULL) // out of memory |
7 | 4894 break; |
4895 } | |
4896 | |
4897 to = (char *)result + done; | |
4898 tolen = len - done - 2; | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4899 // Avoid a warning for systems with a wrong iconv() prototype by |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4900 // casting the second argument to void *. |
7 | 4901 if (iconv(vcp->vc_fd, (void *)&from, &fromlen, &to, &tolen) |
4902 != (size_t)-1) | |
4903 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4904 // Finished, append a NUL. |
7 | 4905 *to = NUL; |
4906 break; | |
4907 } | |
4908 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4909 // Check both ICONV_EINVAL and EINVAL, because the dynamically loaded |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4910 // iconv library may use one of them. |
7 | 4911 if (!vcp->vc_fail && unconvlenp != NULL |
4912 && (ICONV_ERRNO == ICONV_EINVAL || ICONV_ERRNO == EINVAL)) | |
4913 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4914 // Handle an incomplete sequence at the end. |
7 | 4915 *to = NUL; |
835 | 4916 *unconvlenp = (int)fromlen; |
7 | 4917 break; |
4918 } | |
4919 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4920 // Check both ICONV_EILSEQ and EILSEQ, because the dynamically loaded |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4921 // iconv library may use one of them. |
7 | 4922 else if (!vcp->vc_fail |
4923 && (ICONV_ERRNO == ICONV_EILSEQ || ICONV_ERRNO == EILSEQ | |
4924 || ICONV_ERRNO == ICONV_EINVAL || ICONV_ERRNO == EINVAL)) | |
4925 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4926 // Can't convert: insert a '?' and skip a character. This assumes |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4927 // conversion from 'encoding' to something else. In other |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4928 // situations we don't know what to skip anyway. |
7 | 4929 *to++ = '?'; |
4930 if ((*mb_ptr2cells)((char_u *)from) > 1) | |
4931 *to++ = '?'; | |
221 | 4932 if (enc_utf8) |
835 | 4933 l = utfc_ptr2len_len((char_u *)from, (int)fromlen); |
221 | 4934 else |
4935 { | |
474 | 4936 l = (*mb_ptr2len)((char_u *)from); |
227 | 4937 if (l > (int)fromlen) |
835 | 4938 l = (int)fromlen; |
221 | 4939 } |
7 | 4940 from += l; |
4941 fromlen -= l; | |
4942 } | |
4943 else if (ICONV_ERRNO != ICONV_E2BIG) | |
4944 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4945 // conversion failed |
13244
ac42c4b11dbc
patch 8.0.1496: clearing a pointer takes two lines
Christian Brabandt <cb@256bit.org>
parents:
13117
diff
changeset
|
4946 VIM_CLEAR(result); |
7 | 4947 break; |
4948 } | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4949 // Not enough room or skipping illegal sequence. |
7 | 4950 done = to - (char *)result; |
4951 } | |
1904 | 4952 |
2766 | 4953 if (resultlenp != NULL && result != NULL) |
1904 | 4954 *resultlenp = (int)(to - (char *)result); |
7 | 4955 return result; |
4956 } | |
4957 | |
4958 # if defined(DYNAMIC_ICONV) || defined(PROTO) | |
4959 /* | |
4960 * Dynamically load the "iconv.dll" on Win32. | |
4961 */ | |
4962 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4963 # ifndef DYNAMIC_ICONV // must be generating prototypes |
7734
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4964 # define HINSTANCE int |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4965 # endif |
297 | 4966 static HINSTANCE hIconvDLL = 0; |
4967 static HINSTANCE hMsvcrtDLL = 0; | |
7 | 4968 |
7734
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4969 # ifndef DYNAMIC_ICONV_DLL |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4970 # define DYNAMIC_ICONV_DLL "iconv.dll" |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4971 # define DYNAMIC_ICONV_DLL_ALT1 "libiconv.dll" |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4972 # define DYNAMIC_ICONV_DLL_ALT2 "libiconv2.dll" |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4973 # define DYNAMIC_ICONV_DLL_ALT3 "libiconv-2.dll" |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4974 # endif |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4975 # ifndef DYNAMIC_MSVCRT_DLL |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4976 # define DYNAMIC_MSVCRT_DLL "msvcrt.dll" |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4977 # endif |
7 | 4978 |
4979 /* | |
4980 * Try opening the iconv.dll and return TRUE if iconv() can be used. | |
4981 */ | |
4982 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4983 iconv_enabled(int verbose) |
7 | 4984 { |
4985 if (hIconvDLL != 0 && hMsvcrtDLL != 0) | |
4986 return TRUE; | |
7162
fe090e9cd10a
commit https://github.com/vim/vim/commit/9d6ca1cc5ebb6e61cc2ef73aecfbb0bdbb65432f
Christian Brabandt <cb@256bit.org>
parents:
6864
diff
changeset
|
4987 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4988 // The iconv DLL file goes under different names, try them all. |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4989 // Do the "2" version first, it's newer. |
7734
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4990 #ifdef DYNAMIC_ICONV_DLL_ALT2 |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4991 if (hIconvDLL == 0) |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4992 hIconvDLL = vimLoadLib(DYNAMIC_ICONV_DLL_ALT2); |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4993 #endif |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4994 #ifdef DYNAMIC_ICONV_DLL_ALT3 |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4995 if (hIconvDLL == 0) |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4996 hIconvDLL = vimLoadLib(DYNAMIC_ICONV_DLL_ALT3); |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4997 #endif |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4998 if (hIconvDLL == 0) |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4999 hIconvDLL = vimLoadLib(DYNAMIC_ICONV_DLL); |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
5000 #ifdef DYNAMIC_ICONV_DLL_ALT1 |
7162
fe090e9cd10a
commit https://github.com/vim/vim/commit/9d6ca1cc5ebb6e61cc2ef73aecfbb0bdbb65432f
Christian Brabandt <cb@256bit.org>
parents:
6864
diff
changeset
|
5001 if (hIconvDLL == 0) |
fe090e9cd10a
commit https://github.com/vim/vim/commit/9d6ca1cc5ebb6e61cc2ef73aecfbb0bdbb65432f
Christian Brabandt <cb@256bit.org>
parents:
6864
diff
changeset
|
5002 hIconvDLL = vimLoadLib(DYNAMIC_ICONV_DLL_ALT1); |
7734
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
5003 #endif |
7162
fe090e9cd10a
commit https://github.com/vim/vim/commit/9d6ca1cc5ebb6e61cc2ef73aecfbb0bdbb65432f
Christian Brabandt <cb@256bit.org>
parents:
6864
diff
changeset
|
5004 |
7 | 5005 if (hIconvDLL != 0) |
2612 | 5006 hMsvcrtDLL = vimLoadLib(DYNAMIC_MSVCRT_DLL); |
7 | 5007 if (hIconvDLL == 0 || hMsvcrtDLL == 0) |
5008 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5009 // Only give the message when 'verbose' is set, otherwise it might be |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5010 // done whenever a conversion is attempted. |
7 | 5011 if (verbose && p_verbose > 0) |
292 | 5012 { |
5013 verbose_enter(); | |
26877
06a137af96f8
patch 8.2.3967: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents:
26865
diff
changeset
|
5014 semsg(_(e_could_not_load_library_str_str), |
25342
c4298ed56ffa
patch 8.2.3208: dynamic library load error does not mention why it failed
Bram Moolenaar <Bram@vim.org>
parents:
25206
diff
changeset
|
5015 hIconvDLL == 0 ? DYNAMIC_ICONV_DLL : DYNAMIC_MSVCRT_DLL, |
c4298ed56ffa
patch 8.2.3208: dynamic library load error does not mention why it failed
Bram Moolenaar <Bram@vim.org>
parents:
25206
diff
changeset
|
5016 GetWin32Error()); |
292 | 5017 verbose_leave(); |
5018 } | |
7 | 5019 iconv_end(); |
5020 return FALSE; | |
5021 } | |
5022 | |
29105
faf7fcd1c8d5
patch 8.2.5073: clang on MS-Windows produces warnings
Bram Moolenaar <Bram@vim.org>
parents:
28790
diff
changeset
|
5023 iconv = (size_t (*)(iconv_t, const char **, |
faf7fcd1c8d5
patch 8.2.5073: clang on MS-Windows produces warnings
Bram Moolenaar <Bram@vim.org>
parents:
28790
diff
changeset
|
5024 size_t *, char **, size_t *)) |
faf7fcd1c8d5
patch 8.2.5073: clang on MS-Windows produces warnings
Bram Moolenaar <Bram@vim.org>
parents:
28790
diff
changeset
|
5025 GetProcAddress(hIconvDLL, "libiconv"); |
faf7fcd1c8d5
patch 8.2.5073: clang on MS-Windows produces warnings
Bram Moolenaar <Bram@vim.org>
parents:
28790
diff
changeset
|
5026 iconv_open = (iconv_t (*)(const char *, const char *)) |
faf7fcd1c8d5
patch 8.2.5073: clang on MS-Windows produces warnings
Bram Moolenaar <Bram@vim.org>
parents:
28790
diff
changeset
|
5027 GetProcAddress(hIconvDLL, "libiconv_open"); |
faf7fcd1c8d5
patch 8.2.5073: clang on MS-Windows produces warnings
Bram Moolenaar <Bram@vim.org>
parents:
28790
diff
changeset
|
5028 iconv_close = (int (*)(iconv_t)) |
faf7fcd1c8d5
patch 8.2.5073: clang on MS-Windows produces warnings
Bram Moolenaar <Bram@vim.org>
parents:
28790
diff
changeset
|
5029 GetProcAddress(hIconvDLL, "libiconv_close"); |
faf7fcd1c8d5
patch 8.2.5073: clang on MS-Windows produces warnings
Bram Moolenaar <Bram@vim.org>
parents:
28790
diff
changeset
|
5030 iconvctl = (int (*)(iconv_t, int, void *)) |
faf7fcd1c8d5
patch 8.2.5073: clang on MS-Windows produces warnings
Bram Moolenaar <Bram@vim.org>
parents:
28790
diff
changeset
|
5031 GetProcAddress(hIconvDLL, "libiconvctl"); |
faf7fcd1c8d5
patch 8.2.5073: clang on MS-Windows produces warnings
Bram Moolenaar <Bram@vim.org>
parents:
28790
diff
changeset
|
5032 iconv_errno = (int *(*)(void))get_dll_import_func(hIconvDLL, "_errno"); |
4025 | 5033 if (iconv_errno == NULL) |
29105
faf7fcd1c8d5
patch 8.2.5073: clang on MS-Windows produces warnings
Bram Moolenaar <Bram@vim.org>
parents:
28790
diff
changeset
|
5034 iconv_errno = (int *(*)(void))GetProcAddress(hMsvcrtDLL, "_errno"); |
7 | 5035 if (iconv == NULL || iconv_open == NULL || iconv_close == NULL |
5036 || iconvctl == NULL || iconv_errno == NULL) | |
5037 { | |
5038 iconv_end(); | |
5039 if (verbose && p_verbose > 0) | |
292 | 5040 { |
5041 verbose_enter(); | |
26877
06a137af96f8
patch 8.2.3967: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents:
26865
diff
changeset
|
5042 semsg(_(e_could_not_load_library_function_str), "for libiconv"); |
292 | 5043 verbose_leave(); |
5044 } | |
7 | 5045 return FALSE; |
5046 } | |
5047 return TRUE; | |
5048 } | |
5049 | |
5050 void | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5051 iconv_end(void) |
7 | 5052 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5053 // Don't use iconv() when inputting or outputting characters. |
7 | 5054 if (input_conv.vc_type == CONV_ICONV) |
5055 convert_setup(&input_conv, NULL, NULL); | |
5056 if (output_conv.vc_type == CONV_ICONV) | |
5057 convert_setup(&output_conv, NULL, NULL); | |
5058 | |
5059 if (hIconvDLL != 0) | |
5060 FreeLibrary(hIconvDLL); | |
5061 if (hMsvcrtDLL != 0) | |
5062 FreeLibrary(hMsvcrtDLL); | |
5063 hIconvDLL = 0; | |
5064 hMsvcrtDLL = 0; | |
5065 } | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5066 # endif // DYNAMIC_ICONV |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5067 # endif // USE_ICONV |
7 | 5068 |
18008
8ae333756614
patch 8.1.2000: plugin cannot get the current IME status
Bram Moolenaar <Bram@vim.org>
parents:
17312
diff
changeset
|
5069 #if defined(FEAT_EVAL) || defined(PROTO) |
8ae333756614
patch 8.1.2000: plugin cannot get the current IME status
Bram Moolenaar <Bram@vim.org>
parents:
17312
diff
changeset
|
5070 /* |
8ae333756614
patch 8.1.2000: plugin cannot get the current IME status
Bram Moolenaar <Bram@vim.org>
parents:
17312
diff
changeset
|
5071 * "getimstatus()" function |
8ae333756614
patch 8.1.2000: plugin cannot get the current IME status
Bram Moolenaar <Bram@vim.org>
parents:
17312
diff
changeset
|
5072 */ |
8ae333756614
patch 8.1.2000: plugin cannot get the current IME status
Bram Moolenaar <Bram@vim.org>
parents:
17312
diff
changeset
|
5073 void |
8ae333756614
patch 8.1.2000: plugin cannot get the current IME status
Bram Moolenaar <Bram@vim.org>
parents:
17312
diff
changeset
|
5074 f_getimstatus(typval_T *argvars UNUSED, typval_T *rettv) |
8ae333756614
patch 8.1.2000: plugin cannot get the current IME status
Bram Moolenaar <Bram@vim.org>
parents:
17312
diff
changeset
|
5075 { |
8ae333756614
patch 8.1.2000: plugin cannot get the current IME status
Bram Moolenaar <Bram@vim.org>
parents:
17312
diff
changeset
|
5076 # if defined(HAVE_INPUT_METHOD) |
8ae333756614
patch 8.1.2000: plugin cannot get the current IME status
Bram Moolenaar <Bram@vim.org>
parents:
17312
diff
changeset
|
5077 rettv->vval.v_number = im_get_status(); |
8ae333756614
patch 8.1.2000: plugin cannot get the current IME status
Bram Moolenaar <Bram@vim.org>
parents:
17312
diff
changeset
|
5078 # endif |
8ae333756614
patch 8.1.2000: plugin cannot get the current IME status
Bram Moolenaar <Bram@vim.org>
parents:
17312
diff
changeset
|
5079 } |
25206
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5080 |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5081 /* |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5082 * iconv() function |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5083 */ |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5084 void |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5085 f_iconv(typval_T *argvars UNUSED, typval_T *rettv) |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5086 { |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5087 char_u buf1[NUMBUFLEN]; |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5088 char_u buf2[NUMBUFLEN]; |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5089 char_u *from, *to, *str; |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5090 vimconv_T vimconv; |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5091 |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5092 rettv->v_type = VAR_STRING; |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5093 rettv->vval.v_string = NULL; |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5094 |
25384
e8e2c4d33b9b
patch 8.2.3229: Vim9: runtime and compile time type checks are not the same
Bram Moolenaar <Bram@vim.org>
parents:
25342
diff
changeset
|
5095 if (in_vim9script() |
e8e2c4d33b9b
patch 8.2.3229: Vim9: runtime and compile time type checks are not the same
Bram Moolenaar <Bram@vim.org>
parents:
25342
diff
changeset
|
5096 && (check_for_string_arg(argvars, 0) == FAIL |
e8e2c4d33b9b
patch 8.2.3229: Vim9: runtime and compile time type checks are not the same
Bram Moolenaar <Bram@vim.org>
parents:
25342
diff
changeset
|
5097 || check_for_string_arg(argvars, 1) == FAIL |
e8e2c4d33b9b
patch 8.2.3229: Vim9: runtime and compile time type checks are not the same
Bram Moolenaar <Bram@vim.org>
parents:
25342
diff
changeset
|
5098 || check_for_string_arg(argvars, 2) == FAIL)) |
e8e2c4d33b9b
patch 8.2.3229: Vim9: runtime and compile time type checks are not the same
Bram Moolenaar <Bram@vim.org>
parents:
25342
diff
changeset
|
5099 return; |
e8e2c4d33b9b
patch 8.2.3229: Vim9: runtime and compile time type checks are not the same
Bram Moolenaar <Bram@vim.org>
parents:
25342
diff
changeset
|
5100 |
25206
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5101 str = tv_get_string(&argvars[0]); |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5102 from = enc_canonize(enc_skip(tv_get_string_buf(&argvars[1], buf1))); |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5103 to = enc_canonize(enc_skip(tv_get_string_buf(&argvars[2], buf2))); |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5104 vimconv.vc_type = CONV_NONE; |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5105 convert_setup(&vimconv, from, to); |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5106 |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5107 // If the encodings are equal, no conversion needed. |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5108 if (vimconv.vc_type == CONV_NONE) |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5109 rettv->vval.v_string = vim_strsave(str); |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5110 else |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5111 rettv->vval.v_string = string_convert(&vimconv, str, NULL); |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5112 |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5113 convert_setup(&vimconv, NULL, NULL); |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5114 vim_free(from); |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5115 vim_free(to); |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5116 } |
18008
8ae333756614
patch 8.1.2000: plugin cannot get the current IME status
Bram Moolenaar <Bram@vim.org>
parents:
17312
diff
changeset
|
5117 #endif |
7 | 5118 |
5119 /* | |
5120 * Setup "vcp" for conversion from "from" to "to". | |
5121 * The names must have been made canonical with enc_canonize(). | |
5122 * vcp->vc_type must have been initialized to CONV_NONE. | |
5123 * Note: cannot be used for conversion from/to ucs-2 and ucs-4 (will use utf-8 | |
5124 * instead). | |
5125 * Afterwards invoke with "from" and "to" equal to NULL to cleanup. | |
5126 * Return FAIL when conversion is not supported, OK otherwise. | |
5127 */ | |
5128 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5129 convert_setup(vimconv_T *vcp, char_u *from, char_u *to) |
7 | 5130 { |
1904 | 5131 return convert_setup_ext(vcp, from, TRUE, to, TRUE); |
5132 } | |
5133 | |
5134 /* | |
5135 * As convert_setup(), but only when from_unicode_is_utf8 is TRUE will all | |
5136 * "from" unicode charsets be considered utf-8. Same for "to". | |
5137 */ | |
5138 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5139 convert_setup_ext( |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5140 vimconv_T *vcp, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5141 char_u *from, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5142 int from_unicode_is_utf8, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5143 char_u *to, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5144 int to_unicode_is_utf8) |
1904 | 5145 { |
7 | 5146 int from_prop; |
5147 int to_prop; | |
1904 | 5148 int from_is_utf8; |
5149 int to_is_utf8; | |
7 | 5150 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5151 // Reset to no conversion. |
15597
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
5152 #ifdef USE_ICONV |
7 | 5153 if (vcp->vc_type == CONV_ICONV && vcp->vc_fd != (iconv_t)-1) |
5154 iconv_close(vcp->vc_fd); | |
15597
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
5155 #endif |
7 | 5156 vcp->vc_type = CONV_NONE; |
5157 vcp->vc_factor = 1; | |
5158 vcp->vc_fail = FALSE; | |
5159 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5160 // No conversion when one of the names is empty or they are equal. |
7 | 5161 if (from == NULL || *from == NUL || to == NULL || *to == NUL |
5162 || STRCMP(from, to) == 0) | |
5163 return OK; | |
5164 | |
5165 from_prop = enc_canon_props(from); | |
5166 to_prop = enc_canon_props(to); | |
1904 | 5167 if (from_unicode_is_utf8) |
5168 from_is_utf8 = from_prop & ENC_UNICODE; | |
5169 else | |
5170 from_is_utf8 = from_prop == ENC_UNICODE; | |
5171 if (to_unicode_is_utf8) | |
5172 to_is_utf8 = to_prop & ENC_UNICODE; | |
5173 else | |
5174 to_is_utf8 = to_prop == ENC_UNICODE; | |
5175 | |
5176 if ((from_prop & ENC_LATIN1) && to_is_utf8) | |
7 | 5177 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5178 // Internal latin1 -> utf-8 conversion. |
7 | 5179 vcp->vc_type = CONV_TO_UTF8; |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5180 vcp->vc_factor = 2; // up to twice as long |
7 | 5181 } |
1904 | 5182 else if ((from_prop & ENC_LATIN9) && to_is_utf8) |
26 | 5183 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5184 // Internal latin9 -> utf-8 conversion. |
26 | 5185 vcp->vc_type = CONV_9_TO_UTF8; |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5186 vcp->vc_factor = 3; // up to three as long (euro sign) |
26 | 5187 } |
1904 | 5188 else if (from_is_utf8 && (to_prop & ENC_LATIN1)) |
7 | 5189 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5190 // Internal utf-8 -> latin1 conversion. |
7 | 5191 vcp->vc_type = CONV_TO_LATIN1; |
5192 } | |
1904 | 5193 else if (from_is_utf8 && (to_prop & ENC_LATIN9)) |
26 | 5194 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5195 // Internal utf-8 -> latin9 conversion. |
26 | 5196 vcp->vc_type = CONV_TO_LATIN9; |
5197 } | |
15868
7fad90423bd2
patch 8.1.0941: macros for MS-Windows are inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
15636
diff
changeset
|
5198 #ifdef MSWIN |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5199 // Win32-specific codepage <-> codepage conversion without iconv. |
1904 | 5200 else if ((from_is_utf8 || encname2codepage(from) > 0) |
5201 && (to_is_utf8 || encname2codepage(to) > 0)) | |
7 | 5202 { |
5203 vcp->vc_type = CONV_CODEPAGE; | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5204 vcp->vc_factor = 2; // up to twice as long |
1904 | 5205 vcp->vc_cpfrom = from_is_utf8 ? 0 : encname2codepage(from); |
5206 vcp->vc_cpto = to_is_utf8 ? 0 : encname2codepage(to); | |
7 | 5207 } |
5208 #endif | |
12716
351cf7c67bbe
patch 8.0.1236: Mac features are confusing
Christian Brabandt <cb@256bit.org>
parents:
12650
diff
changeset
|
5209 #ifdef MACOS_CONVERT |
7 | 5210 else if ((from_prop & ENC_MACROMAN) && (to_prop & ENC_LATIN1)) |
5211 { | |
5212 vcp->vc_type = CONV_MAC_LATIN1; | |
5213 } | |
1904 | 5214 else if ((from_prop & ENC_MACROMAN) && to_is_utf8) |
7 | 5215 { |
5216 vcp->vc_type = CONV_MAC_UTF8; | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5217 vcp->vc_factor = 2; // up to twice as long |
7 | 5218 } |
5219 else if ((from_prop & ENC_LATIN1) && (to_prop & ENC_MACROMAN)) | |
5220 { | |
5221 vcp->vc_type = CONV_LATIN1_MAC; | |
5222 } | |
1904 | 5223 else if (from_is_utf8 && (to_prop & ENC_MACROMAN)) |
7 | 5224 { |
5225 vcp->vc_type = CONV_UTF8_MAC; | |
5226 } | |
5227 #endif | |
15597
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
5228 #ifdef USE_ICONV |
7 | 5229 else |
5230 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5231 // Use iconv() for conversion. |
7 | 5232 vcp->vc_fd = (iconv_t)my_iconv_open( |
1904 | 5233 to_is_utf8 ? (char_u *)"utf-8" : to, |
5234 from_is_utf8 ? (char_u *)"utf-8" : from); | |
7 | 5235 if (vcp->vc_fd != (iconv_t)-1) |
5236 { | |
5237 vcp->vc_type = CONV_ICONV; | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5238 vcp->vc_factor = 4; // could be longer too... |
7 | 5239 } |
5240 } | |
15597
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
5241 #endif |
7 | 5242 if (vcp->vc_type == CONV_NONE) |
5243 return FAIL; | |
167 | 5244 |
7 | 5245 return OK; |
5246 } | |
5247 | |
15868
7fad90423bd2
patch 8.1.0941: macros for MS-Windows are inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
15636
diff
changeset
|
5248 #if defined(FEAT_GUI) || defined(AMIGA) || defined(MSWIN) \ |
8212
05b88224cea1
commit https://github.com/vim/vim/commit/48e330aff911be1c798c88a973af6437a8141fce
Christian Brabandt <cb@256bit.org>
parents:
8080
diff
changeset
|
5249 || defined(PROTO) |
7 | 5250 /* |
5251 * Do conversion on typed input characters in-place. | |
5252 * The input and output are not NUL terminated! | |
5253 * Returns the length after conversion. | |
5254 */ | |
5255 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5256 convert_input(char_u *ptr, int len, int maxlen) |
7 | 5257 { |
5258 return convert_input_safe(ptr, len, maxlen, NULL, NULL); | |
5259 } | |
5260 #endif | |
5261 | |
5262 /* | |
5263 * Like convert_input(), but when there is an incomplete byte sequence at the | |
5264 * end return that as an allocated string in "restp" and set "*restlenp" to | |
5265 * the length. If "restp" is NULL it is not used. | |
5266 */ | |
5267 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5268 convert_input_safe( |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5269 char_u *ptr, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5270 int len, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5271 int maxlen, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5272 char_u **restp, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5273 int *restlenp) |
7 | 5274 { |
5275 char_u *d; | |
5276 int dlen = len; | |
5277 int unconvertlen = 0; | |
5278 | |
5279 d = string_convert_ext(&input_conv, ptr, &dlen, | |
5280 restp == NULL ? NULL : &unconvertlen); | |
31728
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
5281 if (d == NULL) |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
5282 return dlen; |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
5283 |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
5284 if (dlen <= maxlen) |
7 | 5285 { |
31728
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
5286 if (unconvertlen > 0) |
7 | 5287 { |
31728
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
5288 // Move the unconverted characters to allocated memory. |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
5289 *restp = alloc(unconvertlen); |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
5290 if (*restp != NULL) |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
5291 mch_memmove(*restp, ptr + len - unconvertlen, unconvertlen); |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
5292 *restlenp = unconvertlen; |
7 | 5293 } |
31728
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
5294 mch_memmove(ptr, d, dlen); |
7 | 5295 } |
31728
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
5296 else |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
5297 // result is too long, keep the unconverted text (the caller must |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
5298 // have done something wrong!) |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
5299 dlen = len; |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
5300 vim_free(d); |
7 | 5301 return dlen; |
5302 } | |
5303 | |
5304 /* | |
5305 * Convert text "ptr[*lenp]" according to "vcp". | |
5306 * Returns the result in allocated memory and sets "*lenp". | |
5307 * When "lenp" is NULL, use NUL terminated strings. | |
5308 * Illegal chars are often changed to "?", unless vcp->vc_fail is set. | |
5309 * When something goes wrong, NULL is returned and "*lenp" is unchanged. | |
5310 */ | |
5311 char_u * | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5312 string_convert( |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5313 vimconv_T *vcp, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5314 char_u *ptr, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5315 int *lenp) |
7 | 5316 { |
5317 return string_convert_ext(vcp, ptr, lenp, NULL); | |
5318 } | |
5319 | |
5320 /* | |
5321 * Like string_convert(), but when "unconvlenp" is not NULL and there are is | |
5322 * an incomplete sequence at the end it is not converted and "*unconvlenp" is | |
5323 * set to the number of remaining bytes. | |
5324 */ | |
5325 char_u * | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5326 string_convert_ext( |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5327 vimconv_T *vcp, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5328 char_u *ptr, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5329 int *lenp, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5330 int *unconvlenp) |
7 | 5331 { |
5332 char_u *retval = NULL; | |
5333 char_u *d; | |
5334 int len; | |
5335 int i; | |
5336 int l; | |
5337 int c; | |
5338 | |
5339 if (lenp == NULL) | |
5340 len = (int)STRLEN(ptr); | |
5341 else | |
5342 len = *lenp; | |
5343 if (len == 0) | |
5344 return vim_strsave((char_u *)""); | |
5345 | |
5346 switch (vcp->vc_type) | |
5347 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5348 case CONV_TO_UTF8: // latin1 to utf-8 conversion |
7 | 5349 retval = alloc(len * 2 + 1); |
5350 if (retval == NULL) | |
5351 break; | |
5352 d = retval; | |
5353 for (i = 0; i < len; ++i) | |
5354 { | |
26 | 5355 c = ptr[i]; |
5356 if (c < 0x80) | |
5357 *d++ = c; | |
7 | 5358 else |
5359 { | |
26 | 5360 *d++ = 0xc0 + ((unsigned)c >> 6); |
5361 *d++ = 0x80 + (c & 0x3f); | |
7 | 5362 } |
5363 } | |
5364 *d = NUL; | |
5365 if (lenp != NULL) | |
5366 *lenp = (int)(d - retval); | |
5367 break; | |
5368 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5369 case CONV_9_TO_UTF8: // latin9 to utf-8 conversion |
26 | 5370 retval = alloc(len * 3 + 1); |
5371 if (retval == NULL) | |
5372 break; | |
5373 d = retval; | |
5374 for (i = 0; i < len; ++i) | |
5375 { | |
5376 c = ptr[i]; | |
5377 switch (c) | |
5378 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5379 case 0xa4: c = 0x20ac; break; // euro |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5380 case 0xa6: c = 0x0160; break; // S hat |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5381 case 0xa8: c = 0x0161; break; // S -hat |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5382 case 0xb4: c = 0x017d; break; // Z hat |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5383 case 0xb8: c = 0x017e; break; // Z -hat |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5384 case 0xbc: c = 0x0152; break; // OE |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5385 case 0xbd: c = 0x0153; break; // oe |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5386 case 0xbe: c = 0x0178; break; // Y |
26 | 5387 } |
5388 d += utf_char2bytes(c, d); | |
5389 } | |
5390 *d = NUL; | |
5391 if (lenp != NULL) | |
5392 *lenp = (int)(d - retval); | |
5393 break; | |
5394 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5395 case CONV_TO_LATIN1: // utf-8 to latin1 conversion |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5396 case CONV_TO_LATIN9: // utf-8 to latin9 conversion |
7 | 5397 retval = alloc(len + 1); |
5398 if (retval == NULL) | |
5399 break; | |
5400 d = retval; | |
5401 for (i = 0; i < len; ++i) | |
5402 { | |
2015 | 5403 l = utf_ptr2len_len(ptr + i, len - i); |
7 | 5404 if (l == 0) |
5405 *d++ = NUL; | |
5406 else if (l == 1) | |
5407 { | |
2015 | 5408 int l_w = utf8len_tab_zero[ptr[i]]; |
5409 | |
5410 if (l_w == 0) | |
5411 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5412 // Illegal utf-8 byte cannot be converted |
2015 | 5413 vim_free(retval); |
5414 return NULL; | |
5415 } | |
5416 if (unconvlenp != NULL && l_w > len - i) | |
7 | 5417 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5418 // Incomplete sequence at the end. |
7 | 5419 *unconvlenp = len - i; |
5420 break; | |
5421 } | |
5422 *d++ = ptr[i]; | |
5423 } | |
5424 else | |
5425 { | |
5426 c = utf_ptr2char(ptr + i); | |
26 | 5427 if (vcp->vc_type == CONV_TO_LATIN9) |
5428 switch (c) | |
5429 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5430 case 0x20ac: c = 0xa4; break; // euro |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5431 case 0x0160: c = 0xa6; break; // S hat |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5432 case 0x0161: c = 0xa8; break; // S -hat |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5433 case 0x017d: c = 0xb4; break; // Z hat |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5434 case 0x017e: c = 0xb8; break; // Z -hat |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5435 case 0x0152: c = 0xbc; break; // OE |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5436 case 0x0153: c = 0xbd; break; // oe |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5437 case 0x0178: c = 0xbe; break; // Y |
26 | 5438 case 0xa4: |
5439 case 0xa6: | |
5440 case 0xa8: | |
5441 case 0xb4: | |
5442 case 0xb8: | |
5443 case 0xbc: | |
5444 case 0xbd: | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5445 case 0xbe: c = 0x100; break; // not in latin9 |
26 | 5446 } |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5447 if (!utf_iscomposing(c)) // skip composing chars |
7 | 5448 { |
5449 if (c < 0x100) | |
5450 *d++ = c; | |
5451 else if (vcp->vc_fail) | |
5452 { | |
5453 vim_free(retval); | |
5454 return NULL; | |
5455 } | |
5456 else | |
5457 { | |
5458 *d++ = 0xbf; | |
5459 if (utf_char2cells(c) > 1) | |
5460 *d++ = '?'; | |
5461 } | |
5462 } | |
5463 i += l - 1; | |
5464 } | |
5465 } | |
5466 *d = NUL; | |
5467 if (lenp != NULL) | |
5468 *lenp = (int)(d - retval); | |
5469 break; | |
5470 | |
765 | 5471 # ifdef MACOS_CONVERT |
7 | 5472 case CONV_MAC_LATIN1: |
5473 retval = mac_string_convert(ptr, len, lenp, vcp->vc_fail, | |
18 | 5474 'm', 'l', unconvlenp); |
7 | 5475 break; |
5476 | |
5477 case CONV_LATIN1_MAC: | |
5478 retval = mac_string_convert(ptr, len, lenp, vcp->vc_fail, | |
18 | 5479 'l', 'm', unconvlenp); |
7 | 5480 break; |
5481 | |
5482 case CONV_MAC_UTF8: | |
5483 retval = mac_string_convert(ptr, len, lenp, vcp->vc_fail, | |
18 | 5484 'm', 'u', unconvlenp); |
7 | 5485 break; |
5486 | |
5487 case CONV_UTF8_MAC: | |
5488 retval = mac_string_convert(ptr, len, lenp, vcp->vc_fail, | |
18 | 5489 'u', 'm', unconvlenp); |
7 | 5490 break; |
5491 # endif | |
5492 | |
5493 # ifdef USE_ICONV | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5494 case CONV_ICONV: // conversion with output_conv.vc_fd |
1904 | 5495 retval = iconv_string(vcp, ptr, len, unconvlenp, lenp); |
7 | 5496 break; |
5497 # endif | |
15868
7fad90423bd2
patch 8.1.0941: macros for MS-Windows are inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
15636
diff
changeset
|
5498 # ifdef MSWIN |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5499 case CONV_CODEPAGE: // codepage -> codepage |
7 | 5500 { |
5501 int retlen; | |
5502 int tmp_len; | |
5503 short_u *tmp; | |
5504 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5505 // 1. codepage/UTF-8 -> ucs-2. |
7 | 5506 if (vcp->vc_cpfrom == 0) |
1752 | 5507 tmp_len = utf8_to_utf16(ptr, len, NULL, NULL); |
7 | 5508 else |
4122 | 5509 { |
5510 tmp_len = MultiByteToWideChar(vcp->vc_cpfrom, | |
5511 unconvlenp ? MB_ERR_INVALID_CHARS : 0, | |
8080
b6cb94ad97a4
commit https://github.com/vim/vim/commit/6aa2cd4be287f35f95f35c2cec6d5a24f53c4d3c
Christian Brabandt <cb@256bit.org>
parents:
7827
diff
changeset
|
5512 (char *)ptr, len, 0, 0); |
4122 | 5513 if (tmp_len == 0 |
5514 && GetLastError() == ERROR_NO_UNICODE_TRANSLATION) | |
5515 { | |
5516 if (lenp != NULL) | |
5517 *lenp = 0; | |
5518 if (unconvlenp != NULL) | |
5519 *unconvlenp = len; | |
5520 retval = alloc(1); | |
5521 if (retval) | |
5522 retval[0] = NUL; | |
5523 return retval; | |
5524 } | |
5525 } | |
16825
ce04ebdf26b8
patch 8.1.1414: alloc() returning "char_u *" causes a lot of type casts
Bram Moolenaar <Bram@vim.org>
parents:
16764
diff
changeset
|
5526 tmp = ALLOC_MULT(short_u, tmp_len); |
7 | 5527 if (tmp == NULL) |
5528 break; | |
5529 if (vcp->vc_cpfrom == 0) | |
1752 | 5530 utf8_to_utf16(ptr, len, tmp, unconvlenp); |
7 | 5531 else |
8080
b6cb94ad97a4
commit https://github.com/vim/vim/commit/6aa2cd4be287f35f95f35c2cec6d5a24f53c4d3c
Christian Brabandt <cb@256bit.org>
parents:
7827
diff
changeset
|
5532 MultiByteToWideChar(vcp->vc_cpfrom, 0, |
b6cb94ad97a4
commit https://github.com/vim/vim/commit/6aa2cd4be287f35f95f35c2cec6d5a24f53c4d3c
Christian Brabandt <cb@256bit.org>
parents:
7827
diff
changeset
|
5533 (char *)ptr, len, tmp, tmp_len); |
7 | 5534 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5535 // 2. ucs-2 -> codepage/UTF-8. |
7 | 5536 if (vcp->vc_cpto == 0) |
1752 | 5537 retlen = utf16_to_utf8(tmp, tmp_len, NULL); |
7 | 5538 else |
5539 retlen = WideCharToMultiByte(vcp->vc_cpto, 0, | |
5540 tmp, tmp_len, 0, 0, 0, 0); | |
5541 retval = alloc(retlen + 1); | |
5542 if (retval != NULL) | |
5543 { | |
5544 if (vcp->vc_cpto == 0) | |
1752 | 5545 utf16_to_utf8(tmp, tmp_len, retval); |
7 | 5546 else |
5547 WideCharToMultiByte(vcp->vc_cpto, 0, | |
8080
b6cb94ad97a4
commit https://github.com/vim/vim/commit/6aa2cd4be287f35f95f35c2cec6d5a24f53c4d3c
Christian Brabandt <cb@256bit.org>
parents:
7827
diff
changeset
|
5548 tmp, tmp_len, |
b6cb94ad97a4
commit https://github.com/vim/vim/commit/6aa2cd4be287f35f95f35c2cec6d5a24f53c4d3c
Christian Brabandt <cb@256bit.org>
parents:
7827
diff
changeset
|
5549 (char *)retval, retlen, 0, 0); |
7 | 5550 retval[retlen] = NUL; |
5551 if (lenp != NULL) | |
5552 *lenp = retlen; | |
5553 } | |
5554 vim_free(tmp); | |
5555 break; | |
5556 } | |
5557 # endif | |
5558 } | |
5559 | |
5560 return retval; | |
5561 } | |
21971
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5562 |
21973
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
5563 #if defined(FEAT_EVAL) || defined(PROTO) |
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
5564 |
21971
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5565 /* |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5566 * Table set by setcellwidths(). |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5567 */ |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5568 typedef struct |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5569 { |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5570 long first; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5571 long last; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5572 char width; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5573 } cw_interval_T; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5574 |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5575 static cw_interval_T *cw_table = NULL; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5576 static size_t cw_table_size = 0; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5577 |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5578 /* |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5579 * Return 1 or 2 when "c" is in the cellwidth table. |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5580 * Return 0 if not. |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5581 */ |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5582 static int |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5583 cw_value(int c) |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5584 { |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5585 int mid, bot, top; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5586 |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5587 if (cw_table == NULL) |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5588 return 0; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5589 |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5590 // first quick check for Latin1 etc. characters |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5591 if (c < cw_table[0].first) |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5592 return 0; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5593 |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5594 // binary search in table |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5595 bot = 0; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5596 top = (int)cw_table_size - 1; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5597 while (top >= bot) |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5598 { |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5599 mid = (bot + top) / 2; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5600 if (cw_table[mid].last < c) |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5601 bot = mid + 1; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5602 else if (cw_table[mid].first > c) |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5603 top = mid - 1; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5604 else |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5605 return cw_table[mid].width; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5606 } |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5607 return 0; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5608 } |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5609 |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5610 static int |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5611 tv_nr_compare(const void *a1, const void *a2) |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5612 { |
21975
2030f8267db9
patch 8.2.1537: memory acccess error when using setcellwidths()
Bram Moolenaar <Bram@vim.org>
parents:
21973
diff
changeset
|
5613 listitem_T *li1 = *(listitem_T **)a1; |
2030f8267db9
patch 8.2.1537: memory acccess error when using setcellwidths()
Bram Moolenaar <Bram@vim.org>
parents:
21973
diff
changeset
|
5614 listitem_T *li2 = *(listitem_T **)a2; |
21971
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5615 |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5616 return li1->li_tv.vval.v_number - li2->li_tv.vval.v_number; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5617 } |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5618 |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5619 void |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5620 f_setcellwidths(typval_T *argvars, typval_T *rettv UNUSED) |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5621 { |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5622 list_T *l; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5623 listitem_T *li; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5624 int item; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5625 int i; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5626 listitem_T **ptrs; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5627 cw_interval_T *table; |
26022
30e60bfd5fb3
patch 8.2.3545: setcellwidths() may make 'listchars' or 'fillchars' invalid
Bram Moolenaar <Bram@vim.org>
parents:
25384
diff
changeset
|
5628 cw_interval_T *cw_table_save; |
30e60bfd5fb3
patch 8.2.3545: setcellwidths() may make 'listchars' or 'fillchars' invalid
Bram Moolenaar <Bram@vim.org>
parents:
25384
diff
changeset
|
5629 size_t cw_table_size_save; |
29387
9dce192d1ac2
patch 9.0.0036: 'fillchars' cannot have window-local values
Bram Moolenaar <Bram@vim.org>
parents:
29105
diff
changeset
|
5630 char *error = NULL; |
21971
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5631 |
30015
adb0de8be4ce
patch 9.0.0345: error message for list argument could be clearer
Bram Moolenaar <Bram@vim.org>
parents:
29761
diff
changeset
|
5632 if (check_for_nonnull_list_arg(argvars, 0) == FAIL) |
25384
e8e2c4d33b9b
patch 8.2.3229: Vim9: runtime and compile time type checks are not the same
Bram Moolenaar <Bram@vim.org>
parents:
25342
diff
changeset
|
5633 return; |
e8e2c4d33b9b
patch 8.2.3229: Vim9: runtime and compile time type checks are not the same
Bram Moolenaar <Bram@vim.org>
parents:
25342
diff
changeset
|
5634 |
21971
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5635 l = argvars[0].vval.v_list; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5636 if (l->lv_len == 0) |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5637 { |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5638 // Clearing the table. |
32120
97255d909654
patch 9.0.1391: "clear" macros are not always used
Bram Moolenaar <Bram@vim.org>
parents:
32118
diff
changeset
|
5639 VIM_CLEAR(cw_table); |
21971
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5640 cw_table_size = 0; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5641 return; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5642 } |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5643 |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5644 ptrs = ALLOC_MULT(listitem_T *, l->lv_len); |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5645 if (ptrs == NULL) |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5646 return; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5647 |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5648 // Check that all entries are a list with three numbers, the range is |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5649 // valid and the cell width is valid. |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5650 item = 0; |
32118
04d9dff67d99
patch 9.0.1390: FOR_ALL_ macros are defined in an unexpected file
Bram Moolenaar <Bram@vim.org>
parents:
31782
diff
changeset
|
5651 FOR_ALL_LIST_ITEMS(l, li) |
21971
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5652 { |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5653 listitem_T *lili; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5654 varnumber_T n1; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5655 |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5656 if (li->li_tv.v_type != VAR_LIST || li->li_tv.vval.v_list == NULL) |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5657 { |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5658 semsg(_(e_list_item_nr_is_not_list), item); |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5659 vim_free(ptrs); |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5660 return; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5661 } |
21975
2030f8267db9
patch 8.2.1537: memory acccess error when using setcellwidths()
Bram Moolenaar <Bram@vim.org>
parents:
21973
diff
changeset
|
5662 |
2030f8267db9
patch 8.2.1537: memory acccess error when using setcellwidths()
Bram Moolenaar <Bram@vim.org>
parents:
21973
diff
changeset
|
5663 lili = li->li_tv.vval.v_list->lv_first; |
2030f8267db9
patch 8.2.1537: memory acccess error when using setcellwidths()
Bram Moolenaar <Bram@vim.org>
parents:
21973
diff
changeset
|
5664 ptrs[item] = lili; |
2030f8267db9
patch 8.2.1537: memory acccess error when using setcellwidths()
Bram Moolenaar <Bram@vim.org>
parents:
21973
diff
changeset
|
5665 for (i = 0; lili != NULL; lili = lili->li_next, ++i) |
21971
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5666 { |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5667 if (lili->li_tv.v_type != VAR_NUMBER) |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5668 break; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5669 if (i == 0) |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5670 { |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5671 n1 = lili->li_tv.vval.v_number; |
31782
a19ef442c77a
patch 9.0.1223: cannot use setcellwidths() below 0x100
Bram Moolenaar <Bram@vim.org>
parents:
31768
diff
changeset
|
5672 if (n1 < 0x80) |
21971
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5673 { |
31782
a19ef442c77a
patch 9.0.1223: cannot use setcellwidths() below 0x100
Bram Moolenaar <Bram@vim.org>
parents:
31768
diff
changeset
|
5674 emsg(_(e_only_values_of_0x80_and_higher_supported)); |
21971
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5675 vim_free(ptrs); |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5676 return; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5677 } |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5678 } |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5679 else if (i == 1 && lili->li_tv.vval.v_number < n1) |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5680 { |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5681 semsg(_(e_list_item_nr_range_invalid), item); |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5682 vim_free(ptrs); |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5683 return; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5684 } |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5685 else if (i == 2 && (lili->li_tv.vval.v_number < 1 |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5686 || lili->li_tv.vval.v_number > 2)) |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5687 { |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5688 semsg(_(e_list_item_nr_cell_width_invalid), item); |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5689 vim_free(ptrs); |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5690 return; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5691 } |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5692 } |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5693 if (i != 3) |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5694 { |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5695 semsg(_(e_list_item_nr_does_not_contain_3_numbers), item); |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5696 vim_free(ptrs); |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5697 return; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5698 } |
21975
2030f8267db9
patch 8.2.1537: memory acccess error when using setcellwidths()
Bram Moolenaar <Bram@vim.org>
parents:
21973
diff
changeset
|
5699 ++item; |
21971
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5700 } |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5701 |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5702 // Sort the list on the first number. |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5703 qsort((void *)ptrs, (size_t)l->lv_len, sizeof(listitem_T *), tv_nr_compare); |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5704 |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5705 table = ALLOC_MULT(cw_interval_T, l->lv_len); |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5706 if (table == NULL) |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5707 { |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5708 vim_free(ptrs); |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5709 return; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5710 } |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5711 |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5712 // Store the items in the new table. |
21975
2030f8267db9
patch 8.2.1537: memory acccess error when using setcellwidths()
Bram Moolenaar <Bram@vim.org>
parents:
21973
diff
changeset
|
5713 for (item = 0; item < l->lv_len; ++item) |
21971
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5714 { |
21975
2030f8267db9
patch 8.2.1537: memory acccess error when using setcellwidths()
Bram Moolenaar <Bram@vim.org>
parents:
21973
diff
changeset
|
5715 listitem_T *lili = ptrs[item]; |
21971
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5716 varnumber_T n1; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5717 |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5718 n1 = lili->li_tv.vval.v_number; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5719 if (item > 0 && n1 <= table[item - 1].last) |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5720 { |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5721 semsg(_(e_overlapping_ranges_for_nr), (long)n1); |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5722 vim_free(ptrs); |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5723 vim_free(table); |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5724 return; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5725 } |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5726 table[item].first = n1; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5727 lili = lili->li_next; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5728 table[item].last = lili->li_tv.vval.v_number; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5729 lili = lili->li_next; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5730 table[item].width = lili->li_tv.vval.v_number; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5731 } |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5732 |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5733 vim_free(ptrs); |
26022
30e60bfd5fb3
patch 8.2.3545: setcellwidths() may make 'listchars' or 'fillchars' invalid
Bram Moolenaar <Bram@vim.org>
parents:
25384
diff
changeset
|
5734 |
30e60bfd5fb3
patch 8.2.3545: setcellwidths() may make 'listchars' or 'fillchars' invalid
Bram Moolenaar <Bram@vim.org>
parents:
25384
diff
changeset
|
5735 cw_table_save = cw_table; |
30e60bfd5fb3
patch 8.2.3545: setcellwidths() may make 'listchars' or 'fillchars' invalid
Bram Moolenaar <Bram@vim.org>
parents:
25384
diff
changeset
|
5736 cw_table_size_save = cw_table_size; |
21971
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5737 cw_table = table; |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5738 cw_table_size = l->lv_len; |
26022
30e60bfd5fb3
patch 8.2.3545: setcellwidths() may make 'listchars' or 'fillchars' invalid
Bram Moolenaar <Bram@vim.org>
parents:
25384
diff
changeset
|
5739 |
29672
6b8aaf16af99
patch 9.0.0176: checking character options is duplicated and incomplete
Bram Moolenaar <Bram@vim.org>
parents:
29395
diff
changeset
|
5740 // Check that the new value does not conflict with 'listchars' or |
6b8aaf16af99
patch 9.0.0176: checking character options is duplicated and incomplete
Bram Moolenaar <Bram@vim.org>
parents:
29395
diff
changeset
|
5741 // 'fillchars'. |
6b8aaf16af99
patch 9.0.0176: checking character options is duplicated and incomplete
Bram Moolenaar <Bram@vim.org>
parents:
29395
diff
changeset
|
5742 error = check_chars_options(); |
29387
9dce192d1ac2
patch 9.0.0036: 'fillchars' cannot have window-local values
Bram Moolenaar <Bram@vim.org>
parents:
29105
diff
changeset
|
5743 if (error != NULL) |
9dce192d1ac2
patch 9.0.0036: 'fillchars' cannot have window-local values
Bram Moolenaar <Bram@vim.org>
parents:
29105
diff
changeset
|
5744 { |
9dce192d1ac2
patch 9.0.0036: 'fillchars' cannot have window-local values
Bram Moolenaar <Bram@vim.org>
parents:
29105
diff
changeset
|
5745 emsg(_(error)); |
9dce192d1ac2
patch 9.0.0036: 'fillchars' cannot have window-local values
Bram Moolenaar <Bram@vim.org>
parents:
29105
diff
changeset
|
5746 cw_table = cw_table_save; |
9dce192d1ac2
patch 9.0.0036: 'fillchars' cannot have window-local values
Bram Moolenaar <Bram@vim.org>
parents:
29105
diff
changeset
|
5747 cw_table_size = cw_table_size_save; |
9dce192d1ac2
patch 9.0.0036: 'fillchars' cannot have window-local values
Bram Moolenaar <Bram@vim.org>
parents:
29105
diff
changeset
|
5748 vim_free(table); |
9dce192d1ac2
patch 9.0.0036: 'fillchars' cannot have window-local values
Bram Moolenaar <Bram@vim.org>
parents:
29105
diff
changeset
|
5749 return; |
9dce192d1ac2
patch 9.0.0036: 'fillchars' cannot have window-local values
Bram Moolenaar <Bram@vim.org>
parents:
29105
diff
changeset
|
5750 } |
26022
30e60bfd5fb3
patch 8.2.3545: setcellwidths() may make 'listchars' or 'fillchars' invalid
Bram Moolenaar <Bram@vim.org>
parents:
25384
diff
changeset
|
5751 |
30e60bfd5fb3
patch 8.2.3545: setcellwidths() may make 'listchars' or 'fillchars' invalid
Bram Moolenaar <Bram@vim.org>
parents:
25384
diff
changeset
|
5752 vim_free(cw_table_save); |
31678
9e1062b4aa94
patch 9.0.1171: screen is not redrawn after using setcellwidths()
Bram Moolenaar <Bram@vim.org>
parents:
31014
diff
changeset
|
5753 redraw_all_later(UPD_CLEAR); |
21971
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5754 } |
21973
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
5755 |
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
5756 void |
31760
f348559ce426
patch 9.0.1212: cannot read back what setcellwidths() has done
Bram Moolenaar <Bram@vim.org>
parents:
31728
diff
changeset
|
5757 f_getcellwidths(typval_T *argvars UNUSED, typval_T *rettv) |
f348559ce426
patch 9.0.1212: cannot read back what setcellwidths() has done
Bram Moolenaar <Bram@vim.org>
parents:
31728
diff
changeset
|
5758 { |
f348559ce426
patch 9.0.1212: cannot read back what setcellwidths() has done
Bram Moolenaar <Bram@vim.org>
parents:
31728
diff
changeset
|
5759 if (rettv_list_alloc(rettv) == FAIL) |
f348559ce426
patch 9.0.1212: cannot read back what setcellwidths() has done
Bram Moolenaar <Bram@vim.org>
parents:
31728
diff
changeset
|
5760 return; |
f348559ce426
patch 9.0.1212: cannot read back what setcellwidths() has done
Bram Moolenaar <Bram@vim.org>
parents:
31728
diff
changeset
|
5761 |
f348559ce426
patch 9.0.1212: cannot read back what setcellwidths() has done
Bram Moolenaar <Bram@vim.org>
parents:
31728
diff
changeset
|
5762 for (size_t i = 0; i < cw_table_size; i++) |
f348559ce426
patch 9.0.1212: cannot read back what setcellwidths() has done
Bram Moolenaar <Bram@vim.org>
parents:
31728
diff
changeset
|
5763 { |
f348559ce426
patch 9.0.1212: cannot read back what setcellwidths() has done
Bram Moolenaar <Bram@vim.org>
parents:
31728
diff
changeset
|
5764 list_T *entry = list_alloc(); |
f348559ce426
patch 9.0.1212: cannot read back what setcellwidths() has done
Bram Moolenaar <Bram@vim.org>
parents:
31728
diff
changeset
|
5765 if (entry == NULL) |
f348559ce426
patch 9.0.1212: cannot read back what setcellwidths() has done
Bram Moolenaar <Bram@vim.org>
parents:
31728
diff
changeset
|
5766 break; |
31768
3f0f639eed9a
patch 9.0.1216: Coverity warns for ignoring return value
Bram Moolenaar <Bram@vim.org>
parents:
31760
diff
changeset
|
5767 if (list_append_number(entry, (varnumber_T)cw_table[i].first) == FAIL |
3f0f639eed9a
patch 9.0.1216: Coverity warns for ignoring return value
Bram Moolenaar <Bram@vim.org>
parents:
31760
diff
changeset
|
5768 || list_append_number(entry, (varnumber_T)cw_table[i].last) == FAIL |
3f0f639eed9a
patch 9.0.1216: Coverity warns for ignoring return value
Bram Moolenaar <Bram@vim.org>
parents:
31760
diff
changeset
|
5769 || list_append_number(entry, (varnumber_T)cw_table[i].width) == FAIL |
3f0f639eed9a
patch 9.0.1216: Coverity warns for ignoring return value
Bram Moolenaar <Bram@vim.org>
parents:
31760
diff
changeset
|
5770 || list_append_list(rettv->vval.v_list, entry) == FAIL) |
3f0f639eed9a
patch 9.0.1216: Coverity warns for ignoring return value
Bram Moolenaar <Bram@vim.org>
parents:
31760
diff
changeset
|
5771 { |
3f0f639eed9a
patch 9.0.1216: Coverity warns for ignoring return value
Bram Moolenaar <Bram@vim.org>
parents:
31760
diff
changeset
|
5772 list_free(entry); |
3f0f639eed9a
patch 9.0.1216: Coverity warns for ignoring return value
Bram Moolenaar <Bram@vim.org>
parents:
31760
diff
changeset
|
5773 break; |
3f0f639eed9a
patch 9.0.1216: Coverity warns for ignoring return value
Bram Moolenaar <Bram@vim.org>
parents:
31760
diff
changeset
|
5774 } |
31760
f348559ce426
patch 9.0.1212: cannot read back what setcellwidths() has done
Bram Moolenaar <Bram@vim.org>
parents:
31728
diff
changeset
|
5775 } |
f348559ce426
patch 9.0.1212: cannot read back what setcellwidths() has done
Bram Moolenaar <Bram@vim.org>
parents:
31728
diff
changeset
|
5776 } |
f348559ce426
patch 9.0.1212: cannot read back what setcellwidths() has done
Bram Moolenaar <Bram@vim.org>
parents:
31728
diff
changeset
|
5777 |
f348559ce426
patch 9.0.1212: cannot read back what setcellwidths() has done
Bram Moolenaar <Bram@vim.org>
parents:
31728
diff
changeset
|
5778 void |
21973
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
5779 f_charclass(typval_T *argvars, typval_T *rettv UNUSED) |
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
5780 { |
25092
cd5e8df05a64
patch 8.2.3083: crash when passing null string to charclass()
Bram Moolenaar <Bram@vim.org>
parents:
25062
diff
changeset
|
5781 if (check_for_string_arg(argvars, 0) == FAIL |
cd5e8df05a64
patch 8.2.3083: crash when passing null string to charclass()
Bram Moolenaar <Bram@vim.org>
parents:
25062
diff
changeset
|
5782 || argvars[0].vval.v_string == NULL) |
21973
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
5783 return; |
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
5784 rettv->vval.v_number = mb_get_class(argvars[0].vval.v_string); |
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
5785 } |
85add08e6a2d
patch 8.2.1536: cannot get the class of a character; emoji widths are wrong
Bram Moolenaar <Bram@vim.org>
parents:
21971
diff
changeset
|
5786 #endif |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33223
diff
changeset
|
5787 |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33223
diff
changeset
|
5788 /* |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33223
diff
changeset
|
5789 * Function given to ExpandGeneric() to obtain the possible arguments of the |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33223
diff
changeset
|
5790 * encoding options. |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33223
diff
changeset
|
5791 */ |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33223
diff
changeset
|
5792 char_u * |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33223
diff
changeset
|
5793 get_encoding_name(expand_T *xp UNUSED, int idx) |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33223
diff
changeset
|
5794 { |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33223
diff
changeset
|
5795 if (idx >= (int)(sizeof(enc_canon_table) / sizeof(enc_canon_table[0]))) |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33223
diff
changeset
|
5796 return NULL; |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33223
diff
changeset
|
5797 |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33223
diff
changeset
|
5798 return (char_u*)enc_canon_table[idx].name; |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33223
diff
changeset
|
5799 } |