Mercurial > vim
annotate src/mbyte.c @ 34623:65e7eaf68f19 v9.1.0200
patch 9.1.0200: `gj`/`gk` not skipping over outer virtual text lines
Commit: https://github.com/vim/vim/commit/b2d124c6258ff41e1f951bf39a4afc386d79ddc4
Author: Dylan Thacker-Smith <dylan.ah.smith@gmail.com>
Date: Sun Mar 24 09:43:25 2024 +0100
patch 9.1.0200: `gj`/`gk` not skipping over outer virtual text lines
Problem: `gj`/`gk` was updating the desired cursor virtual column to
the outer virtual text, even though the actual cursor position
was moved to not be on the virtual text, leading the need to
do an extra `gj`/`gk` to move past each virtual text line.
(rickhowe)
Solution: Exclude the outer virtual text when getting the line length
for moving the cursor with `gj`/`gk`, so that no extra
movement is needed to skip over virtual text lines.
(Dylan Thacker-Smith)
fixes: #12028
related: #14262
Signed-off-by: Dylan Thacker-Smith <dylan.ah.smith@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 24 Mar 2024 10:00:05 +0100 |
parents | 9e093c96dff6 |
children | 97b5457962ed |
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 | |
34336
d2ad8733db75
patch 9.1.0101: upper-case of German sharp s should be U+1E9E
Christian Brabandt <cb@256bit.org>
parents:
34309
diff
changeset
|
3457 // Note: UnicodeData.txt does not define U+1E9E as being the corresponding upper |
d2ad8733db75
patch 9.1.0101: upper-case of German sharp s should be U+1E9E
Christian Brabandt <cb@256bit.org>
parents:
34309
diff
changeset
|
3458 // case letter for U+00DF (ß), however it is part of the toLower table |
297 | 3459 static convertStruct toUpper[] = |
7 | 3460 { |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3461 {0x61,0x7a,1,-32}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3462 {0xb5,0xb5,-1,743}, |
6495 | 3463 {0xe0,0xf6,1,-32}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3464 {0xf8,0xfe,1,-32}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3465 {0xff,0xff,-1,121}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3466 {0x101,0x12f,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3467 {0x131,0x131,-1,-232}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3468 {0x133,0x137,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3469 {0x13a,0x148,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3470 {0x14b,0x177,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3471 {0x17a,0x17e,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3472 {0x17f,0x17f,-1,-300}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3473 {0x180,0x180,-1,195}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3474 {0x183,0x185,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3475 {0x188,0x18c,4,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3476 {0x192,0x192,-1,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3477 {0x195,0x195,-1,97}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3478 {0x199,0x199,-1,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3479 {0x19a,0x19a,-1,163}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3480 {0x19e,0x19e,-1,130}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3481 {0x1a1,0x1a5,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3482 {0x1a8,0x1ad,5,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3483 {0x1b0,0x1b4,4,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3484 {0x1b6,0x1b9,3,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3485 {0x1bd,0x1bd,-1,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3486 {0x1bf,0x1bf,-1,56}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3487 {0x1c5,0x1c5,-1,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3488 {0x1c6,0x1c6,-1,-2}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3489 {0x1c8,0x1c8,-1,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3490 {0x1c9,0x1c9,-1,-2}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3491 {0x1cb,0x1cb,-1,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3492 {0x1cc,0x1cc,-1,-2}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3493 {0x1ce,0x1dc,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3494 {0x1dd,0x1dd,-1,-79}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3495 {0x1df,0x1ef,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3496 {0x1f2,0x1f2,-1,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3497 {0x1f3,0x1f3,-1,-2}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3498 {0x1f5,0x1f9,4,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3499 {0x1fb,0x21f,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3500 {0x223,0x233,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3501 {0x23c,0x23c,-1,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3502 {0x23f,0x240,1,10815}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3503 {0x242,0x247,5,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3504 {0x249,0x24f,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3505 {0x250,0x250,-1,10783}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3506 {0x251,0x251,-1,10780}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3507 {0x252,0x252,-1,10782}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3508 {0x253,0x253,-1,-210}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3509 {0x254,0x254,-1,-206}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3510 {0x256,0x257,1,-205}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3511 {0x259,0x259,-1,-202}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3512 {0x25b,0x25b,-1,-203}, |
6495 | 3513 {0x25c,0x25c,-1,42319}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3514 {0x260,0x260,-1,-205}, |
6495 | 3515 {0x261,0x261,-1,42315}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3516 {0x263,0x263,-1,-207}, |
6495 | 3517 {0x265,0x265,-1,42280}, |
3518 {0x266,0x266,-1,42308}, | |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3519 {0x268,0x268,-1,-209}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3520 {0x269,0x269,-1,-211}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3521 {0x26a,0x26a,-1,42308}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3522 {0x26b,0x26b,-1,10743}, |
6495 | 3523 {0x26c,0x26c,-1,42305}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3524 {0x26f,0x26f,-1,-211}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3525 {0x271,0x271,-1,10749}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3526 {0x272,0x272,-1,-213}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3527 {0x275,0x275,-1,-214}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3528 {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
|
3529 {0x280,0x280,-1,-218}, |
c83169bdb290
patch 8.1.1157: Unicode tables are out of date
Bram Moolenaar <Bram@vim.org>
parents:
16302
diff
changeset
|
3530 {0x282,0x282,-1,42307}, |
c83169bdb290
patch 8.1.1157: Unicode tables are out of date
Bram Moolenaar <Bram@vim.org>
parents:
16302
diff
changeset
|
3531 {0x283,0x283,-1,-218}, |
6495 | 3532 {0x287,0x287,-1,42282}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3533 {0x288,0x288,-1,-218}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3534 {0x289,0x289,-1,-69}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3535 {0x28a,0x28b,1,-217}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3536 {0x28c,0x28c,-1,-71}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3537 {0x292,0x292,-1,-219}, |
6864 | 3538 {0x29d,0x29d,-1,42261}, |
6495 | 3539 {0x29e,0x29e,-1,42258}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3540 {0x345,0x345,-1,84}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3541 {0x371,0x373,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3542 {0x377,0x377,-1,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3543 {0x37b,0x37d,1,130}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3544 {0x3ac,0x3ac,-1,-38}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3545 {0x3ad,0x3af,1,-37}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3546 {0x3b1,0x3c1,1,-32}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3547 {0x3c2,0x3c2,-1,-31}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3548 {0x3c3,0x3cb,1,-32}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3549 {0x3cc,0x3cc,-1,-64}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3550 {0x3cd,0x3ce,1,-63}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3551 {0x3d0,0x3d0,-1,-62}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3552 {0x3d1,0x3d1,-1,-57}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3553 {0x3d5,0x3d5,-1,-47}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3554 {0x3d6,0x3d6,-1,-54}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3555 {0x3d7,0x3d7,-1,-8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3556 {0x3d9,0x3ef,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3557 {0x3f0,0x3f0,-1,-86}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3558 {0x3f1,0x3f1,-1,-80}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3559 {0x3f2,0x3f2,-1,7}, |
6495 | 3560 {0x3f3,0x3f3,-1,-116}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3561 {0x3f5,0x3f5,-1,-96}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3562 {0x3f8,0x3fb,3,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3563 {0x430,0x44f,1,-32}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3564 {0x450,0x45f,1,-80}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3565 {0x461,0x481,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3566 {0x48b,0x4bf,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3567 {0x4c2,0x4ce,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3568 {0x4cf,0x4cf,-1,-15}, |
6495 | 3569 {0x4d1,0x52f,2,-1}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3570 {0x561,0x586,1,-48}, |
14333
65ded7626193
patch 8.1.0182: Unicode standard was updated
Christian Brabandt <cb@256bit.org>
parents:
14075
diff
changeset
|
3571 {0x10d0,0x10fa,1,3008}, |
65ded7626193
patch 8.1.0182: Unicode standard was updated
Christian Brabandt <cb@256bit.org>
parents:
14075
diff
changeset
|
3572 {0x10fd,0x10ff,1,3008}, |
6864 | 3573 {0x13f8,0x13fd,1,-8}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3574 {0x1c80,0x1c80,-1,-6254}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3575 {0x1c81,0x1c81,-1,-6253}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3576 {0x1c82,0x1c82,-1,-6244}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3577 {0x1c83,0x1c84,1,-6242}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3578 {0x1c85,0x1c85,-1,-6243}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3579 {0x1c86,0x1c86,-1,-6236}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3580 {0x1c87,0x1c87,-1,-6181}, |
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3581 {0x1c88,0x1c88,-1,35266}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3582 {0x1d79,0x1d79,-1,35332}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3583 {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
|
3584 {0x1d8e,0x1d8e,-1,35384}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3585 {0x1e01,0x1e95,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3586 {0x1e9b,0x1e9b,-1,-59}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3587 {0x1ea1,0x1eff,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3588 {0x1f00,0x1f07,1,8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3589 {0x1f10,0x1f15,1,8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3590 {0x1f20,0x1f27,1,8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3591 {0x1f30,0x1f37,1,8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3592 {0x1f40,0x1f45,1,8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3593 {0x1f51,0x1f57,2,8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3594 {0x1f60,0x1f67,1,8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3595 {0x1f70,0x1f71,1,74}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3596 {0x1f72,0x1f75,1,86}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3597 {0x1f76,0x1f77,1,100}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3598 {0x1f78,0x1f79,1,128}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3599 {0x1f7a,0x1f7b,1,112}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3600 {0x1f7c,0x1f7d,1,126}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3601 {0x1f80,0x1f87,1,8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3602 {0x1f90,0x1f97,1,8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3603 {0x1fa0,0x1fa7,1,8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3604 {0x1fb0,0x1fb1,1,8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3605 {0x1fb3,0x1fb3,-1,9}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3606 {0x1fbe,0x1fbe,-1,-7205}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3607 {0x1fc3,0x1fc3,-1,9}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3608 {0x1fd0,0x1fd1,1,8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3609 {0x1fe0,0x1fe1,1,8}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3610 {0x1fe5,0x1fe5,-1,7}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3611 {0x1ff3,0x1ff3,-1,9}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3612 {0x214e,0x214e,-1,-28}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3613 {0x2170,0x217f,1,-16}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3614 {0x2184,0x2184,-1,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3615 {0x24d0,0x24e9,1,-26}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3616 {0x2c30,0x2c5f,1,-48}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3617 {0x2c61,0x2c61,-1,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3618 {0x2c65,0x2c65,-1,-10795}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3619 {0x2c66,0x2c66,-1,-10792}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3620 {0x2c68,0x2c6c,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3621 {0x2c73,0x2c76,3,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3622 {0x2c81,0x2ce3,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3623 {0x2cec,0x2cee,2,-1}, |
6495 | 3624 {0x2cf3,0x2cf3,-1,-1}, |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3625 {0x2d00,0x2d25,1,-7264}, |
6495 | 3626 {0x2d27,0x2d2d,6,-7264}, |
3627 {0xa641,0xa66d,2,-1}, | |
3628 {0xa681,0xa69b,2,-1}, | |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3629 {0xa723,0xa72f,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3630 {0xa733,0xa76f,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3631 {0xa77a,0xa77c,2,-1}, |
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3632 {0xa77f,0xa787,2,-1}, |
6495 | 3633 {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
|
3634 {0xa793,0xa793,-1,-1}, |
c83169bdb290
patch 8.1.1157: Unicode tables are out of date
Bram Moolenaar <Bram@vim.org>
parents:
16302
diff
changeset
|
3635 {0xa794,0xa794,-1,48}, |
c83169bdb290
patch 8.1.1157: Unicode tables are out of date
Bram Moolenaar <Bram@vim.org>
parents:
16302
diff
changeset
|
3636 {0xa797,0xa7a9,2,-1}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3637 {0xa7b5,0xa7c3,2,-1}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3638 {0xa7c8,0xa7ca,2,-1}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3639 {0xa7d1,0xa7d7,6,-1}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3640 {0xa7d9,0xa7f6,29,-1}, |
6864 | 3641 {0xab53,0xab53,-1,-928}, |
3642 {0xab70,0xabbf,1,-38864}, | |
2041
d5867fd6b2b7
updated for version 7.2.330
Bram Moolenaar <bram@zimbu.org>
parents:
2015
diff
changeset
|
3643 {0xff41,0xff5a,1,-32}, |
6495 | 3644 {0x10428,0x1044f,1,-40}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3645 {0x104d8,0x104fb,1,-40}, |
30503
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3646 {0x10597,0x105a1,1,-39}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3647 {0x105a3,0x105b1,1,-39}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3648 {0x105b3,0x105b9,1,-39}, |
3ee335235412
patch 9.0.0587: Unicode tables are outdated
Bram Moolenaar <Bram@vim.org>
parents:
30053
diff
changeset
|
3649 {0x105bb,0x105bc,1,-39}, |
6864 | 3650 {0x10cc0,0x10cf2,1,-64}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3651 {0x118c0,0x118df,1,-32}, |
14333
65ded7626193
patch 8.1.0182: Unicode standard was updated
Christian Brabandt <cb@256bit.org>
parents:
14075
diff
changeset
|
3652 {0x16e60,0x16e7f,1,-32}, |
9357
f9524b765095
commit https://github.com/vim/vim/commit/04e2b4b0c4866586ecce3d1567f9b0bdeeb31f15
Christian Brabandt <cb@256bit.org>
parents:
8819
diff
changeset
|
3653 {0x1e922,0x1e943,1,-34} |
7 | 3654 }; |
8682
4ce551bd5024
commit https://github.com/vim/vim/commit/d63aff0a65b955447de2fd8bfdaee29b61ce2843
Christian Brabandt <cb@256bit.org>
parents:
8680
diff
changeset
|
3655 |
7 | 3656 /* |
3657 * Return the upper-case equivalent of "a", which is a UCS-4 character. Use | |
3658 * simple case folding. | |
3659 */ | |
3660 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3661 utf_toupper(int a) |
7 | 3662 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3663 // If 'casemap' contains "keepascii" use ASCII style toupper(). |
7 | 3664 if (a < 128 && (cmp_flags & CMP_KEEPASCII)) |
3665 return TOUPPER_ASC(a); | |
3666 | |
856 | 3667 #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
|
3668 // If towupper() is available and handles Unicode, use it. |
7 | 3669 if (!(cmp_flags & CMP_INTERNAL)) |
3670 return towupper(a); | |
3671 #endif | |
3672 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3673 // For characters below 128 use locale sensitive toupper(). |
7 | 3674 if (a < 128) |
3675 return TOUPPER_LOC(a); | |
3676 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3677 // For any other characters use the above mapping table. |
3190 | 3678 return utf_convert(a, toUpper, (int)sizeof(toUpper)); |
7 | 3679 } |
3680 | |
3681 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3682 utf_islower(int a) |
7 | 3683 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3684 // German sharp s is lower case but has no upper case equivalent. |
3551 | 3685 return (utf_toupper(a) != a) || a == 0xdf; |
7 | 3686 } |
3687 | |
3688 /* | |
3689 * Return the lower-case equivalent of "a", which is a UCS-4 character. Use | |
3690 * simple case folding. | |
3691 */ | |
3692 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3693 utf_tolower(int a) |
7 | 3694 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3695 // If 'casemap' contains "keepascii" use ASCII style tolower(). |
7 | 3696 if (a < 128 && (cmp_flags & CMP_KEEPASCII)) |
3697 return TOLOWER_ASC(a); | |
3698 | |
856 | 3699 #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
|
3700 // If towlower() is available and handles Unicode, use it. |
7 | 3701 if (!(cmp_flags & CMP_INTERNAL)) |
3702 return towlower(a); | |
3703 #endif | |
3704 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3705 // For characters below 128 use locale sensitive tolower(). |
7 | 3706 if (a < 128) |
3707 return TOLOWER_LOC(a); | |
3708 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3709 // For any other characters use the above mapping table. |
3190 | 3710 return utf_convert(a, toLower, (int)sizeof(toLower)); |
7 | 3711 } |
3712 | |
3713 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3714 utf_isupper(int a) |
7 | 3715 { |
3716 return (utf_tolower(a) != a); | |
3717 } | |
3718 | |
2961 | 3719 static int |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3720 utf_strnicmp( |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3721 char_u *s1, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3722 char_u *s2, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3723 size_t n1, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3724 size_t n2) |
2961 | 3725 { |
3726 int c1, c2, cdiff; | |
3727 char_u buffer[6]; | |
3728 | |
3729 for (;;) | |
3730 { | |
3731 c1 = utf_safe_read_char_adv(&s1, &n1); | |
3732 c2 = utf_safe_read_char_adv(&s2, &n2); | |
3733 | |
3734 if (c1 <= 0 || c2 <= 0) | |
3735 break; | |
3736 | |
3737 if (c1 == c2) | |
3738 continue; | |
3739 | |
3740 cdiff = utf_fold(c1) - utf_fold(c2); | |
3741 if (cdiff != 0) | |
3742 return cdiff; | |
3743 } | |
3744 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3745 // some string ended or has an incomplete/illegal character sequence |
2961 | 3746 |
3747 if (c1 == 0 || c2 == 0) | |
3748 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3749 // some string ended. shorter string is smaller |
2961 | 3750 if (c1 == 0 && c2 == 0) |
3751 return 0; | |
3752 return c1 == 0 ? -1 : 1; | |
3753 } | |
3754 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3755 // 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
|
3756 // 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
|
3757 // |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3758 // 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
|
3759 // 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
|
3760 // to fold just one character to determine the result of comparison. |
2961 | 3761 |
3762 if (c1 != -1 && c2 == -1) | |
3763 { | |
3764 n1 = utf_char2bytes(utf_fold(c1), buffer); | |
3765 s1 = buffer; | |
3766 } | |
3767 else if (c2 != -1 && c1 == -1) | |
3768 { | |
3769 n2 = utf_char2bytes(utf_fold(c2), buffer); | |
3770 s2 = buffer; | |
3771 } | |
3772 | |
3773 while (n1 > 0 && n2 > 0 && *s1 != NUL && *s2 != NUL) | |
3774 { | |
3775 cdiff = (int)(*s1) - (int)(*s2); | |
3776 if (cdiff != 0) | |
3777 return cdiff; | |
3778 | |
3779 s1++; | |
3780 s2++; | |
3781 n1--; | |
3782 n2--; | |
3783 } | |
3784 | |
3785 if (n1 > 0 && *s1 == NUL) | |
3786 n1 = 0; | |
3787 if (n2 > 0 && *s2 == NUL) | |
3788 n2 = 0; | |
3789 | |
3790 if (n1 == 0 && n2 == 0) | |
3791 return 0; | |
3792 return n1 == 0 ? -1 : 1; | |
3793 } | |
3794 | |
7 | 3795 /* |
3796 * Version of strnicmp() that handles multi-byte characters. | |
4025 | 3797 * Needed for Big5, Shift-JIS and UTF-8 encoding. Other DBCS encodings can |
7 | 3798 * probably use strnicmp(), because there are no ASCII characters in the |
3799 * second byte. | |
3800 * Returns zero if s1 and s2 are equal (ignoring case), the difference between | |
3801 * two characters otherwise. | |
3802 */ | |
3803 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3804 mb_strnicmp(char_u *s1, char_u *s2, size_t nn) |
7 | 3805 { |
2961 | 3806 int i, l; |
7 | 3807 int cdiff; |
835 | 3808 int n = (int)nn; |
7 | 3809 |
2961 | 3810 if (enc_utf8) |
7 | 3811 { |
2961 | 3812 return utf_strnicmp(s1, s2, nn, nn); |
3813 } | |
3814 else | |
3815 { | |
3816 for (i = 0; i < n; i += l) | |
7 | 3817 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3818 if (s1[i] == NUL && s2[i] == NUL) // both strings end |
2961 | 3819 return 0; |
3820 | |
474 | 3821 l = (*mb_ptr2len)(s1 + i); |
7 | 3822 if (l <= 1) |
3823 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3824 // Single byte: first check normally, then with ignore case. |
7 | 3825 if (s1[i] != s2[i]) |
3826 { | |
1347 | 3827 cdiff = MB_TOLOWER(s1[i]) - MB_TOLOWER(s2[i]); |
7 | 3828 if (cdiff != 0) |
3829 return cdiff; | |
3830 } | |
3831 } | |
3832 else | |
3833 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3834 // For non-Unicode multi-byte don't ignore case. |
7 | 3835 if (l > n - i) |
3836 l = n - i; | |
3837 cdiff = STRNCMP(s1 + i, s2 + i, l); | |
3838 if (cdiff != 0) | |
3839 return cdiff; | |
3840 } | |
3841 } | |
3842 } | |
3843 return 0; | |
3844 } | |
3845 | |
3846 /* | |
3847 * "g8": show bytes of the UTF-8 char under the cursor. Doesn't matter what | |
3848 * 'encoding' has been set to. | |
3849 */ | |
3850 void | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3851 show_utf8(void) |
7 | 3852 { |
3853 int len; | |
273 | 3854 int rlen = 0; |
7 | 3855 char_u *line; |
3856 int clen; | |
3857 int i; | |
3858 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3859 // 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
|
3860 // characters. |
7 | 3861 line = ml_get_cursor(); |
474 | 3862 len = utfc_ptr2len(line); |
7 | 3863 if (len == 0) |
3864 { | |
15543
dd725a8ab112
patch 8.1.0779: argument for message functions is inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
15474
diff
changeset
|
3865 msg("NUL"); |
7 | 3866 return; |
3867 } | |
3868 | |
3869 clen = 0; | |
3870 for (i = 0; i < len; ++i) | |
3871 { | |
3872 if (clen == 0) | |
3873 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3874 // start of (composing) character, get its length |
7 | 3875 if (i > 0) |
273 | 3876 { |
3877 STRCPY(IObuff + rlen, "+ "); | |
3878 rlen += 2; | |
3879 } | |
474 | 3880 clen = utf_ptr2len(line + i); |
7 | 3881 } |
2205
54605ada811b
"g8" doesn't work properly on a NUL.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
3882 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
|
3883 (line[i] == NL) ? NUL : line[i]); // NUL is stored as NL |
7 | 3884 --clen; |
835 | 3885 rlen += (int)STRLEN(IObuff + rlen); |
273 | 3886 if (rlen > IOSIZE - 20) |
3887 break; | |
7 | 3888 } |
3889 | |
15543
dd725a8ab112
patch 8.1.0779: argument for message functions is inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
15474
diff
changeset
|
3890 msg((char *)IObuff); |
7 | 3891 } |
3892 | |
3893 /* | |
3894 * mb_head_off() function pointer. | |
3895 * Return offset from "p" to the first byte of the character it points into. | |
2015 | 3896 * If "p" points to the NUL at the end of the string return 0. |
7 | 3897 * Returns 0 when already at the first byte of a character. |
3898 */ | |
3899 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3900 latin_head_off(char_u *base UNUSED, char_u *p UNUSED) |
7 | 3901 { |
3902 return 0; | |
3903 } | |
3904 | |
18051
d1e77015f60b
patch 8.1.2021: some global functions can be local to the file
Bram Moolenaar <Bram@vim.org>
parents:
18014
diff
changeset
|
3905 static int |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3906 dbcs_head_off(char_u *base, char_u *p) |
7 | 3907 { |
3908 char_u *q; | |
3909 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3910 // 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
|
3911 // string or the previous byte can't start a double-byte. |
2015 | 3912 if (p <= base || MB_BYTE2LEN(p[-1]) == 1 || *p == NUL) |
7 | 3913 return 0; |
3914 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3915 // 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
|
3916 // byte we are looking for. Return 1 when we went past it, 0 otherwise. |
7 | 3917 q = base; |
3918 while (q < p) | |
474 | 3919 q += dbcs_ptr2len(q); |
7 | 3920 return (q == p) ? 0 : 1; |
3921 } | |
3922 | |
3923 /* | |
3924 * Special version of dbcs_head_off() that works for ScreenLines[], where | |
3925 * single-width DBCS_JPNU characters are stored separately. | |
3926 */ | |
3927 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3928 dbcs_screen_head_off(char_u *base, char_u *p) |
7 | 3929 { |
3930 char_u *q; | |
3931 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3932 // 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
|
3933 // 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
|
3934 // 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
|
3935 // lead byte in the current cell. |
7 | 3936 if (p <= base |
3937 || (enc_dbcs == DBCS_JPNU && p[-1] == 0x8e) | |
2015 | 3938 || MB_BYTE2LEN(p[-1]) == 1 |
3939 || *p == NUL) | |
7 | 3940 return 0; |
3941 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3942 // 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
|
3943 // 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
|
3944 // 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
|
3945 // stored as the next byte. |
7 | 3946 q = base; |
3947 while (q < p) | |
3948 { | |
3949 if (enc_dbcs == DBCS_JPNU && *q == 0x8e) | |
3950 ++q; | |
3951 else | |
474 | 3952 q += dbcs_ptr2len(q); |
7 | 3953 } |
3954 return (q == p) ? 0 : 1; | |
3955 } | |
3956 | |
26592
9f445e07f766
patch 8.2.3825: various comments could be improved
Bram Moolenaar <Bram@vim.org>
parents:
26075
diff
changeset
|
3957 /* |
9f445e07f766
patch 8.2.3825: various comments could be improved
Bram Moolenaar <Bram@vim.org>
parents:
26075
diff
changeset
|
3958 * 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
|
3959 * 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
|
3960 * terminated. |
9f445e07f766
patch 8.2.3825: various comments could be improved
Bram Moolenaar <Bram@vim.org>
parents:
26075
diff
changeset
|
3961 */ |
7 | 3962 int |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
3963 utf_head_off(char_u *base, char_u *p) |
7 | 3964 { |
3965 char_u *q; | |
3966 char_u *s; | |
3967 int c; | |
2015 | 3968 int len; |
7 | 3969 #ifdef FEAT_ARABIC |
3970 char_u *j; | |
3971 #endif | |
3972 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3973 if (*p < 0x80) // be quick for ASCII |
7 | 3974 return 0; |
3975 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3976 // 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
|
3977 // Skip backwards again if on a composing char. |
7 | 3978 for (q = p; ; --q) |
3979 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3980 // Move s to the last byte of this char. |
7 | 3981 for (s = q; (s[1] & 0xc0) == 0x80; ++s) |
3982 ; | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3983 // Move q to the first byte of this char. |
7 | 3984 while (q > base && (*q & 0xc0) == 0x80) |
3985 --q; | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
3986 // 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
|
3987 // started. |
2015 | 3988 len = utf8len_tab[*q]; |
3989 if (len != (int)(s - q + 1) && len != (int)(p - q + 1)) | |
7 | 3990 return 0; |
3991 | |
3992 if (q <= base) | |
3993 break; | |
3994 | |
3995 c = utf_ptr2char(q); | |
3996 if (utf_iscomposing(c)) | |
3997 continue; | |
3998 | |
3999 #ifdef FEAT_ARABIC | |
4000 if (arabic_maycombine(c)) | |
4001 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4002 // Advance to get a sneak-peak at the next char |
7 | 4003 j = q; |
4004 --j; | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4005 // Move j to the first byte of this char. |
7 | 4006 while (j > base && (*j & 0xc0) == 0x80) |
4007 --j; | |
4008 if (arabic_combine(utf_ptr2char(j), c)) | |
4009 continue; | |
4010 } | |
4011 #endif | |
4012 break; | |
4013 } | |
4014 | |
4015 return (int)(p - q); | |
4016 } | |
4017 | |
4018 /* | |
20695
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4019 * 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
|
4020 */ |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4021 int |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4022 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
|
4023 { |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4024 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
|
4025 || (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
|
4026 || (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
|
4027 || (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
|
4028 || (cc >= 0xff1a && cc <= 0xff20) // .. |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4029 || (cc >= 0xff3b && cc <= 0xff40) // .. |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4030 || (cc >= 0xff5b && cc <= 0xff65)); // .. |
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 |
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 * 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
|
4035 */ |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4036 int |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4037 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
|
4038 { |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4039 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
|
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 ']', |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4050 '}', |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4051 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
|
4052 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
|
4053 0x2020, // † dagger |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4054 0x2021, // ‡ double dagger |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4055 0x2026, // … horizontal ellipsis |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4056 0x2030, // ‰ per mille sign |
33223
def9fc5c92d1
patch 9.0.1886: Various Typos
Christian Brabandt <cb@256bit.org>
parents:
32120
diff
changeset
|
4057 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
|
4058 0x203c, // ‼ double exclamation mark |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4059 0x2047, // ⁇ double question mark |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4060 0x2048, // ⁈ question exclamation mark |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4061 0x2049, // ⁉ exclamation question mark |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4062 0x2103, // ℃ degree celsius |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4063 0x2109, // ℉ degree fahrenheit |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4064 0x3001, // 、 ideographic comma |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4065 0x3002, // 。 ideographic full stop |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4066 0x3009, // 〉 right angle bracket |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4067 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
|
4068 0x300d, // 」 right corner bracket |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4069 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
|
4070 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
|
4071 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
|
4072 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
|
4073 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
|
4074 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
|
4075 0xff01, // ! fullwidth exclamation mark |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4076 0xff09, // ) fullwidth right parenthesis |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4077 0xff0c, // , fullwidth comma |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4078 0xff0e, // . fullwidth full stop |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4079 0xff1a, // : fullwidth colon |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4080 0xff1b, // ; fullwidth semicolon |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4081 0xff1f, // ? fullwidth question mark |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4082 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
|
4083 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
|
4084 }; |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4085 |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4086 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
|
4087 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
|
4088 int mid = 0; |
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 while (first < last) |
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 mid = (first + last)/2; |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4093 |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4094 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 return FALSE; |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4096 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
|
4097 first = mid + 1; |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4098 else |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4099 last = mid - 1; |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4100 } |
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 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
|
4103 } |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4104 |
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 * 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
|
4107 */ |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4108 static int |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4109 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
|
4110 { |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4111 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
|
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 '`', |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4117 '{', |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4118 //0x2014, // — em dash |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4119 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
|
4120 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
|
4121 //0x2053, // ~ swung dash |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4122 0x3008, // 〈 left angle bracket |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4123 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
|
4124 0x300c, // 「 left corner bracket |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4125 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
|
4126 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
|
4127 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
|
4128 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
|
4129 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
|
4130 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
|
4131 0xff08, // ( fullwidth left parenthesis |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4132 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
|
4133 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
|
4134 }; |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4135 |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4136 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
|
4137 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
|
4138 int mid = 0; |
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 while (first < last) |
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 mid = (first + last)/2; |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4143 |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4144 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 return FALSE; |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4146 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
|
4147 first = mid + 1; |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4148 else |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4149 last = mid - 1; |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4150 } |
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 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
|
4153 } |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4154 |
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 * 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
|
4157 */ |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4158 int |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4159 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
|
4160 { |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4161 // 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
|
4162 if (cc == ncc |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4163 && (cc == 0x2014 // em dash |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4164 || cc == 0x2026)) // horizontal ellipsis |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4165 return FALSE; |
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 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
|
4168 } |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4169 |
cea8ae407452
patch 8.2.0901: formatting CJK text isn't optimal
Bram Moolenaar <Bram@vim.org>
parents:
20637
diff
changeset
|
4170 /* |
99 | 4171 * Copy a character from "*fp" to "*tp" and advance the pointers. |
4172 */ | |
4173 void | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4174 mb_copy_char(char_u **fp, char_u **tp) |
99 | 4175 { |
474 | 4176 int l = (*mb_ptr2len)(*fp); |
99 | 4177 |
4178 mch_memmove(*tp, *fp, (size_t)l); | |
4179 *tp += l; | |
4180 *fp += l; | |
4181 } | |
4182 | |
4183 /* | |
7 | 4184 * Return the offset from "p" to the first byte of a character. When "p" is |
4185 * at the start of a character 0 is returned, otherwise the offset to the next | |
4186 * character. Can start anywhere in a stream of bytes. | |
4187 */ | |
4188 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4189 mb_off_next(char_u *base, char_u *p) |
7 | 4190 { |
34431
cffcacc1502a
patch 9.1.0137: <Del> in cmdline mode doesn't delete composing chars
Christian Brabandt <cb@256bit.org>
parents:
34336
diff
changeset
|
4191 int head_off = (*mb_head_off)(base, p); |
cffcacc1502a
patch 9.1.0137: <Del> in cmdline mode doesn't delete composing chars
Christian Brabandt <cb@256bit.org>
parents:
34336
diff
changeset
|
4192 |
cffcacc1502a
patch 9.1.0137: <Del> in cmdline mode doesn't delete composing chars
Christian Brabandt <cb@256bit.org>
parents:
34336
diff
changeset
|
4193 if (head_off == 0) |
cffcacc1502a
patch 9.1.0137: <Del> in cmdline mode doesn't delete composing chars
Christian Brabandt <cb@256bit.org>
parents:
34336
diff
changeset
|
4194 return 0; |
cffcacc1502a
patch 9.1.0137: <Del> in cmdline mode doesn't delete composing chars
Christian Brabandt <cb@256bit.org>
parents:
34336
diff
changeset
|
4195 |
cffcacc1502a
patch 9.1.0137: <Del> in cmdline mode doesn't delete composing chars
Christian Brabandt <cb@256bit.org>
parents:
34336
diff
changeset
|
4196 return (*mb_ptr2len)(p - head_off) - head_off; |
7 | 4197 } |
4198 | |
4199 /* | |
4200 * Return the offset from "p" to the last byte of the character it points | |
4201 * 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
|
4202 * Composing characters are not included. |
7 | 4203 */ |
4204 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4205 mb_tail_off(char_u *base, char_u *p) |
7 | 4206 { |
4207 int i; | |
4208 int j; | |
4209 | |
4210 if (*p == NUL) | |
4211 return 0; | |
4212 | |
4213 if (enc_utf8) | |
4214 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4215 // Find the last character that is 10xx.xxxx |
7 | 4216 for (i = 0; (p[i + 1] & 0xc0) == 0x80; ++i) |
4217 ; | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4218 // Check for illegal sequence. |
7 | 4219 for (j = 0; p - j > base; ++j) |
4220 if ((p[-j] & 0xc0) != 0x80) | |
4221 break; | |
4222 if (utf8len_tab[p[-j]] != i + j + 1) | |
4223 return 0; | |
4224 return i; | |
4225 } | |
4226 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4227 // 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
|
4228 // end of the string or the byte can't start a double-byte. |
7 | 4229 if (enc_dbcs == 0 || p[1] == NUL || MB_BYTE2LEN(*p) == 1) |
4230 return 0; | |
4231 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4232 // Return 1 when on the lead byte, 0 when on the tail byte. |
7 | 4233 return 1 - dbcs_head_off(base, p); |
4234 } | |
4235 | |
776 | 4236 /* |
4237 * Find the next illegal byte sequence. | |
4238 */ | |
4239 void | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4240 utf_find_illegal(void) |
776 | 4241 { |
4242 pos_T pos = curwin->w_cursor; | |
4243 char_u *p; | |
4244 int len; | |
4245 vimconv_T vimconv; | |
4246 char_u *tofree = NULL; | |
4247 | |
4248 vimconv.vc_type = CONV_NONE; | |
4249 if (enc_utf8 && (enc_canon_props(curbuf->b_p_fenc) & ENC_8BIT)) | |
4250 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4251 // '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
|
4252 // 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
|
4253 // from utf-8 to 'fileencoding'. |
776 | 4254 convert_setup(&vimconv, p_enc, curbuf->b_p_fenc); |
4255 } | |
4256 | |
4257 curwin->w_cursor.coladd = 0; | |
4258 for (;;) | |
4259 { | |
4260 p = ml_get_cursor(); | |
4261 if (vimconv.vc_type != CONV_NONE) | |
4262 { | |
4263 vim_free(tofree); | |
4264 tofree = string_convert(&vimconv, p, NULL); | |
4265 if (tofree == NULL) | |
4266 break; | |
4267 p = tofree; | |
4268 } | |
4269 | |
4270 while (*p != NUL) | |
4271 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4272 // 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
|
4273 // utf_ptr2len()) or too many of them (overlong sequence). |
776 | 4274 len = utf_ptr2len(p); |
4275 if (*p >= 0x80 && (len == 1 | |
4276 || utf_char2len(utf_ptr2char(p)) != len)) | |
4277 { | |
4278 if (vimconv.vc_type == CONV_NONE) | |
835 | 4279 curwin->w_cursor.col += (colnr_T)(p - ml_get_cursor()); |
776 | 4280 else |
4281 { | |
4282 int l; | |
4283 | |
835 | 4284 len = (int)(p - tofree); |
776 | 4285 for (p = ml_get_cursor(); *p != NUL && len-- > 0; p += l) |
4286 { | |
4287 l = utf_ptr2len(p); | |
4288 curwin->w_cursor.col += l; | |
4289 } | |
4290 } | |
4291 goto theend; | |
4292 } | |
4293 p += len; | |
4294 } | |
4295 if (curwin->w_cursor.lnum == curbuf->b_ml.ml_line_count) | |
4296 break; | |
4297 ++curwin->w_cursor.lnum; | |
4298 curwin->w_cursor.col = 0; | |
4299 } | |
4300 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4301 // didn't find it: don't move and beep |
776 | 4302 curwin->w_cursor = pos; |
4303 beep_flush(); | |
4304 | |
4305 theend: | |
4306 vim_free(tofree); | |
4307 convert_setup(&vimconv, NULL, NULL); | |
4308 } | |
4309 | |
28790
a161c262e947
patch 8.2.4919: can add invalid bytes with :spellgood
Bram Moolenaar <Bram@vim.org>
parents:
28423
diff
changeset
|
4310 #if defined(FEAT_GUI_GTK) || defined(FEAT_SPELL) || defined(PROTO) |
26 | 4311 /* |
4312 * 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
|
4313 * When "end" is NULL stop at the first NUL. Otherwise stop at "end". |
26 | 4314 */ |
4315 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4316 utf_valid_string(char_u *s, char_u *end) |
26 | 4317 { |
4318 int l; | |
4319 char_u *p = s; | |
4320 | |
4321 while (end == NULL ? *p != NUL : p < end) | |
4322 { | |
2015 | 4323 l = utf8len_tab_zero[*p]; |
4324 if (l == 0) | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4325 return FALSE; // invalid lead byte |
26 | 4326 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
|
4327 return FALSE; // incomplete byte sequence |
26 | 4328 ++p; |
4329 while (--l > 0) | |
4330 if ((*p++ & 0xc0) != 0x80) | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4331 return FALSE; // invalid trail byte |
26 | 4332 } |
4333 return TRUE; | |
4334 } | |
4335 #endif | |
4336 | |
7 | 4337 #if defined(FEAT_GUI) || defined(PROTO) |
4338 /* | |
4339 * Special version of mb_tail_off() for use in ScreenLines[]. | |
4340 */ | |
4341 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4342 dbcs_screen_tail_off(char_u *base, char_u *p) |
7 | 4343 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4344 // 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
|
4345 // 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
|
4346 // 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
|
4347 // cell. |
7 | 4348 if (*p == NUL || p[1] == NUL |
4349 || (enc_dbcs == DBCS_JPNU && *p == 0x8e) | |
4350 || MB_BYTE2LEN(*p) == 1) | |
4351 return 0; | |
4352 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4353 // Return 1 when on the lead byte, 0 when on the tail byte. |
7 | 4354 return 1 - dbcs_screen_head_off(base, p); |
4355 } | |
4356 #endif | |
4357 | |
4358 /* | |
4359 * If the cursor moves on an trail byte, set the cursor on the lead byte. | |
4360 * Thus it moves left if necessary. | |
4361 * Return TRUE when the cursor was adjusted. | |
4362 */ | |
4363 void | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4364 mb_adjust_cursor(void) |
7 | 4365 { |
2933 | 4366 mb_adjustpos(curbuf, &curwin->w_cursor); |
7 | 4367 } |
4368 | |
4369 /* | |
4370 * Adjust position "*lp" to point to the first byte of a multi-byte character. | |
4371 * If it points to a tail byte it's moved backwards to the head byte. | |
4372 */ | |
4373 void | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4374 mb_adjustpos(buf_T *buf, pos_T *lp) |
7 | 4375 { |
4376 char_u *p; | |
4377 | |
15636
6f1c7e9a6393
patch 8.1.0826: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15597
diff
changeset
|
4378 if (lp->col > 0 || lp->coladd > 1) |
7 | 4379 { |
2933 | 4380 p = ml_get_buf(buf, lp->lnum, FALSE); |
34540
9e093c96dff6
patch 9.1.0172: More code can use ml_get_buf_len() instead of STRLEN()
Christian Brabandt <cb@256bit.org>
parents:
34431
diff
changeset
|
4381 if (*p == NUL || ml_get_buf_len(buf, lp->lnum) < lp->col) |
13117
cfaa513efa3f
patch 8.0.1433: illegal memory access after undo
Christian Brabandt <cb@256bit.org>
parents:
12948
diff
changeset
|
4382 lp->col = 0; |
cfaa513efa3f
patch 8.0.1433: illegal memory access after undo
Christian Brabandt <cb@256bit.org>
parents:
12948
diff
changeset
|
4383 else |
cfaa513efa3f
patch 8.0.1433: illegal memory access after undo
Christian Brabandt <cb@256bit.org>
parents:
12948
diff
changeset
|
4384 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
|
4385 // 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
|
4386 // double-wide character. |
7 | 4387 if (lp->coladd == 1 |
4388 && p[lp->col] != TAB | |
4389 && vim_isprintc((*mb_ptr2char)(p + lp->col)) | |
4390 && ptr2cells(p + lp->col) > 1) | |
4391 lp->coladd = 0; | |
4392 } | |
4393 } | |
4394 | |
4395 /* | |
4396 * Return a pointer to the character before "*p", if there is one. | |
4397 */ | |
4398 char_u * | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4399 mb_prevptr( |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4400 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
|
4401 char_u *p) |
7 | 4402 { |
4403 if (p > line) | |
11127
506f5d8b7d8b
patch 8.0.0451: some macros are in lower case
Christian Brabandt <cb@256bit.org>
parents:
10724
diff
changeset
|
4404 MB_PTR_BACK(line, p); |
7 | 4405 return p; |
4406 } | |
4407 | |
4408 /* | |
474 | 4409 * Return the character length of "str". Each multi-byte character (with |
4410 * following composing characters) counts as one. | |
7 | 4411 */ |
4412 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4413 mb_charlen(char_u *str) |
7 | 4414 { |
500 | 4415 char_u *p = str; |
4416 int count; | |
4417 | |
4418 if (p == NULL) | |
7 | 4419 return 0; |
4420 | |
500 | 4421 for (count = 0; *p != NUL; count++) |
4422 p += (*mb_ptr2len)(p); | |
7 | 4423 |
4424 return count; | |
4425 } | |
4426 | |
500 | 4427 /* |
4428 * Like mb_charlen() but for a string with specified length. | |
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_len(char_u *str, int len) |
500 | 4432 { |
4433 char_u *p = str; | |
4434 int count; | |
4435 | |
4436 for (count = 0; *p != NUL && p < str + len; count++) | |
4437 p += (*mb_ptr2len)(p); | |
4438 | |
4439 return count; | |
4440 } | |
4441 | |
7 | 4442 /* |
4443 * Try to un-escape a multi-byte character. | |
4444 * Used for the "to" and "from" part of a mapping. | |
4445 * Return the un-escaped string if it is a multi-byte character, and advance | |
4446 * "pp" to just after the bytes that formed it. | |
4447 * Return NULL if no multi-byte char was found. | |
4448 */ | |
4449 char_u * | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4450 mb_unescape(char_u **pp) |
7 | 4451 { |
3812 | 4452 static char_u buf[6]; |
4453 int n; | |
4454 int m = 0; | |
7 | 4455 char_u *str = *pp; |
4456 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4457 // 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
|
4458 // 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
|
4459 // Maximum length of a utf-8 character is 4 bytes. |
3812 | 4460 for (n = 0; str[n] != NUL && m < 4; ++n) |
7 | 4461 { |
4462 if (str[n] == K_SPECIAL | |
4463 && str[n + 1] == KS_SPECIAL | |
4464 && str[n + 2] == KE_FILLER) | |
4465 { | |
4466 buf[m++] = K_SPECIAL; | |
4467 n += 2; | |
4468 } | |
1495 | 4469 else if ((str[n] == K_SPECIAL |
7 | 4470 # ifdef FEAT_GUI |
1495 | 4471 || str[n] == CSI |
4472 # endif | |
4473 ) | |
7 | 4474 && str[n + 1] == KS_EXTRA |
4475 && str[n + 2] == (int)KE_CSI) | |
4476 { | |
4477 buf[m++] = CSI; | |
4478 n += 2; | |
4479 } | |
4480 else if (str[n] == K_SPECIAL | |
4481 # ifdef FEAT_GUI | |
4482 || str[n] == CSI | |
4483 # endif | |
4484 ) | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4485 break; // a special key can't be a multibyte char |
7 | 4486 else |
4487 buf[m++] = str[n]; | |
4488 buf[m] = NUL; | |
4489 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4490 // 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
|
4491 // will result in a 1 here. |
474 | 4492 if ((*mb_ptr2len)(buf) > 1) |
7 | 4493 { |
4494 *pp = str + n + 1; | |
4495 return buf; | |
4496 } | |
3812 | 4497 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4498 // Bail out quickly for ASCII. |
3812 | 4499 if (buf[0] < 128) |
4500 break; | |
7 | 4501 } |
4502 return NULL; | |
4503 } | |
4504 | |
4505 /* | |
4506 * Return TRUE if the character at "row"/"col" on the screen is the left side | |
4507 * of a double-width character. | |
4508 * Caller must make sure "row" and "col" are not invalid! | |
4509 */ | |
4510 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4511 mb_lefthalve(int row, int col) |
7 | 4512 { |
1378 | 4513 return (*mb_off2cells)(LineOffset[row] + col, |
4514 LineOffset[row] + screen_Columns) > 1; | |
7 | 4515 } |
4516 | |
4517 /* | |
1698 | 4518 * Correct a position on the screen, if it's the right half of a double-wide |
4519 * char move it to the left half. Returns the corrected column. | |
7 | 4520 */ |
4521 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4522 mb_fix_col(int col, int row) |
7 | 4523 { |
17312
484424955bfa
patch 8.1.1655: popup window border drawn wrong with multi-byte char
Bram Moolenaar <Bram@vim.org>
parents:
17296
diff
changeset
|
4524 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
|
4525 |
7 | 4526 col = check_col(col); |
4527 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
|
4528 off = LineOffset[row] + col; |
7 | 4529 if (has_mbyte && ScreenLines != NULL && col > 0 |
4530 && ((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
|
4531 && ScreenLines[off] != NUL |
7 | 4532 && 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
|
4533 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
|
4534 || (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
|
4535 && ScreenLinesUC[off] == 0))) |
1620 | 4536 return col - 1; |
7 | 4537 return col; |
4538 } | |
15597
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
4539 |
7803
37c929c4a073
commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents:
7734
diff
changeset
|
4540 static int enc_alias_search(char_u *name); |
7 | 4541 |
4542 /* | |
4543 * Skip the Vim specific head of a 'encoding' name. | |
4544 */ | |
4545 char_u * | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4546 enc_skip(char_u *p) |
7 | 4547 { |
4548 if (STRNCMP(p, "2byte-", 6) == 0) | |
4549 return p + 6; | |
4550 if (STRNCMP(p, "8bit-", 5) == 0) | |
4551 return p + 5; | |
4552 return p; | |
4553 } | |
4554 | |
4555 /* | |
4556 * Find the canonical name for encoding "enc". | |
4557 * When the name isn't recognized, returns "enc" itself, but with all lower | |
4558 * case characters and '_' replaced with '-'. | |
4559 * Returns an allocated string. NULL for out-of-memory. | |
4560 */ | |
4561 char_u * | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4562 enc_canonize(char_u *enc) |
7 | 4563 { |
4564 char_u *r; | |
4565 char_u *p, *s; | |
4566 int i; | |
4567 | |
39 | 4568 if (STRCMP(enc, "default") == 0) |
4569 { | |
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
|
4570 #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
|
4571 // 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
|
4572 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
|
4573 #else |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4574 // Use the default encoding as it's found by set_init_1(). |
39 | 4575 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
|
4576 #endif |
39 | 4577 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
|
4578 r = (char_u *)ENC_DFLT; |
39 | 4579 return vim_strsave(r); |
4580 } | |
4581 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4582 // 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
|
4583 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
|
4584 if (r == NULL) |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4585 return NULL; |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4586 |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4587 // 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
|
4588 p = r; |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4589 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
|
4590 { |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4591 if (*s == '_') |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4592 *p++ = '-'; |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4593 else |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4594 *p++ = TOLOWER_ASC(*s); |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4595 } |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4596 *p = NUL; |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4597 |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4598 // Skip "2byte-" and "8bit-". |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4599 p = enc_skip(r); |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4600 |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4601 // 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
|
4602 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
|
4603 STRMOVE(p, p + 10); |
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 // "iso8859" -> "iso-8859" |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4606 if (STRNCMP(p, "iso8859", 7) == 0) |
7 | 4607 { |
31728
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4608 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
|
4609 p[3] = '-'; |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4610 } |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4611 |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4612 // "iso-8859n" -> "iso-8859-n" |
34074
1629cc65d78d
patch 9.1.0006: is*() and to*() function may be unsafe
Christian Brabandt <cb@256bit.org>
parents:
33529
diff
changeset
|
4613 if (STRNCMP(p, "iso-8859", 8) == 0 && SAFE_isdigit(p[8])) |
31728
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4614 { |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4615 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
|
4616 p[8] = '-'; |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4617 } |
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 // "latin-N" -> "latinN" |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4620 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
|
4621 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
|
4622 |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4623 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
|
4624 { |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4625 // 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
|
4626 if (p != r) |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4627 STRMOVE(r, p); |
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 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
|
4630 { |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4631 // 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
|
4632 vim_free(r); |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
4633 r = vim_strsave((char_u *)enc_canon_table[i].name); |
7 | 4634 } |
4635 return r; | |
4636 } | |
4637 | |
4638 /* | |
4639 * Search for an encoding alias of "name". | |
4640 * Returns -1 when not found. | |
4641 */ | |
4642 static int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4643 enc_alias_search(char_u *name) |
7 | 4644 { |
4645 int i; | |
4646 | |
4647 for (i = 0; enc_alias_table[i].name != NULL; ++i) | |
4648 if (STRCMP(name, enc_alias_table[i].name) == 0) | |
4649 return enc_alias_table[i].canon; | |
4650 return -1; | |
4651 } | |
15597
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
4652 |
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
4653 |
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
4654 #ifdef HAVE_LANGINFO_H |
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
4655 # include <langinfo.h> |
7 | 4656 #endif |
4657 | |
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
|
4658 #if !defined(FEAT_GUI_MSWIN) || defined(VIMDLL) |
7 | 4659 /* |
12547
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4660 * 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
|
4661 * or from the environment variables LC_ALL, LC_CTYPE and LANG. |
7 | 4662 * Returns an allocated string when successful, NULL when not. |
4663 */ | |
4664 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
|
4665 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
|
4666 { |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4667 char *s = locale; |
7 | 4668 char *p; |
4669 int i; | |
4670 char buf[50]; | |
4671 | |
4672 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
|
4673 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
|
4674 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
|
4675 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
|
4676 |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4677 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
|
4678 return NULL; |
7 | 4679 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4680 // 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
|
4681 // 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
|
4682 // 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
|
4683 // 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
|
4684 // 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
|
4685 // 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
|
4686 // "ko_KR.EUC" == "euc-kr" |
7 | 4687 if ((p = (char *)vim_strchr((char_u *)s, '.')) != NULL) |
4688 { | |
4689 if (p > s + 2 && STRNICMP(p + 1, "EUC", 3) == 0 | |
34074
1629cc65d78d
patch 9.1.0006: is*() and to*() function may be unsafe
Christian Brabandt <cb@256bit.org>
parents:
33529
diff
changeset
|
4690 && !SAFE_isalnum((int)p[4]) && p[4] != '-' && p[-3] == '_') |
7 | 4691 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4692 // copy "XY.EUC" to "euc-XY" to buf[10] |
7 | 4693 STRCPY(buf + 10, "euc-"); |
4694 buf[14] = p[-2]; | |
4695 buf[15] = p[-1]; | |
4696 buf[16] = 0; | |
4697 s = buf + 10; | |
4698 } | |
4699 else | |
4700 s = p + 1; | |
4701 } | |
9495
c086632cca2e
commit https://github.com/vim/vim/commit/5498a41f5a62c3877fee0185adf3bf7245a9a547
Christian Brabandt <cb@256bit.org>
parents:
9477
diff
changeset
|
4702 for (i = 0; i < (int)sizeof(buf) - 1 && s[i] != NUL; ++i) |
7 | 4703 { |
4704 if (s[i] == '_' || s[i] == '-') | |
4705 buf[i] = '-'; | |
34074
1629cc65d78d
patch 9.1.0006: is*() and to*() function may be unsafe
Christian Brabandt <cb@256bit.org>
parents:
33529
diff
changeset
|
4706 else if (SAFE_isalnum(s[i])) |
7 | 4707 buf[i] = TOLOWER_ASC(s[i]); |
4708 else | |
4709 break; | |
4710 } | |
4711 buf[i] = NUL; | |
4712 | |
4713 return enc_canonize((char_u *)buf); | |
4714 } | |
15597
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
4715 #endif |
12547
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4716 |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4717 /* |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4718 * 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
|
4719 * 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
|
4720 */ |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4721 char_u * |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4722 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
|
4723 { |
15868
7fad90423bd2
patch 8.1.0941: macros for MS-Windows are inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
15636
diff
changeset
|
4724 #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
|
4725 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
|
4726 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
|
4727 |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4728 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
|
4729 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
|
4730 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
|
4731 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
|
4732 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
|
4733 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
|
4734 else |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4735 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
|
4736 |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4737 return enc_canonize((char_u *)buf); |
15597
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
4738 #else |
12547
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4739 char *s; |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4740 |
15597
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
4741 # 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
|
4742 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
|
4743 # endif |
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
4744 # 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
|
4745 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
|
4746 # endif |
12547
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4747 s = NULL; |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4748 |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4749 return enc_locale_env(s); |
15597
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
4750 #endif |
12547
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4751 } |
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4752 |
15868
7fad90423bd2
patch 8.1.0941: macros for MS-Windows are inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
15636
diff
changeset
|
4753 # if defined(MSWIN) || defined(PROTO) || defined(FEAT_CYGWIN_WIN32_CLIPBOARD) |
7 | 4754 /* |
4755 * Convert an encoding name to an MS-Windows codepage. | |
4756 * Returns zero if no codepage can be figured out. | |
4757 */ | |
4758 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4759 encname2codepage(char_u *name) |
7 | 4760 { |
4761 int cp; | |
4762 char_u *p = name; | |
4763 int idx; | |
4764 | |
4765 if (STRNCMP(p, "8bit-", 5) == 0) | |
4766 p += 5; | |
4767 else if (STRNCMP(p_enc, "2byte-", 6) == 0) | |
4768 p += 6; | |
4769 | |
4770 if (p[0] == 'c' && p[1] == 'p') | |
5136
28e6f5f88968
updated for version 7.3.1311
Bram Moolenaar <bram@vim.org>
parents:
5025
diff
changeset
|
4771 cp = atoi((char *)p + 2); |
7 | 4772 else if ((idx = enc_canon_search(p)) >= 0) |
4773 cp = enc_canon_table[idx].codepage; | |
4774 else | |
4775 return 0; | |
4776 if (IsValidCodePage(cp)) | |
4777 return cp; | |
4778 return 0; | |
4779 } | |
12547
aa3f6d093f4b
patch 8.0.1152: encoding of error message wrong in Cygwin terminal
Christian Brabandt <cb@256bit.org>
parents:
12439
diff
changeset
|
4780 # endif |
7 | 4781 |
4782 # if defined(USE_ICONV) || defined(PROTO) | |
4783 | |
4784 /* | |
4785 * Call iconv_open() with a check if iconv() works properly (there are broken | |
4786 * versions). | |
4787 * Returns (void *)-1 if failed. | |
4788 * (should return iconv_t, but that causes problems with prototypes). | |
4789 */ | |
4790 void * | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4791 my_iconv_open(char_u *to, char_u *from) |
7 | 4792 { |
4793 iconv_t fd; | |
4794 #define ICONV_TESTLEN 400 | |
4795 char_u tobuf[ICONV_TESTLEN]; | |
4796 char *p; | |
4797 size_t tolen; | |
4798 static int iconv_ok = -1; | |
4799 | |
4800 if (iconv_ok == FALSE) | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4801 return (void *)-1; // detected a broken iconv() previously |
7 | 4802 |
4803 #ifdef DYNAMIC_ICONV | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4804 // Check if the iconv.dll can be found. |
7 | 4805 if (!iconv_enabled(TRUE)) |
4806 return (void *)-1; | |
4807 #endif | |
4808 | |
4809 fd = iconv_open((char *)enc_skip(to), (char *)enc_skip(from)); | |
4810 | |
4811 if (fd != (iconv_t)-1 && iconv_ok == -1) | |
4812 { | |
4813 /* | |
4814 * Do a dummy iconv() call to check if it actually works. There is a | |
4815 * version of iconv() on Linux that is broken. We can't ignore it, | |
4816 * because it's wide-spread. The symptoms are that after outputting | |
4817 * the initial shift state the "to" pointer is NULL and conversion | |
4818 * stops for no apparent reason after about 8160 characters. | |
4819 */ | |
4820 p = (char *)tobuf; | |
4821 tolen = ICONV_TESTLEN; | |
4822 (void)iconv(fd, NULL, NULL, &p, &tolen); | |
4823 if (p == NULL) | |
4824 { | |
4825 iconv_ok = FALSE; | |
4826 iconv_close(fd); | |
4827 fd = (iconv_t)-1; | |
4828 } | |
4829 else | |
4830 iconv_ok = TRUE; | |
4831 } | |
4832 | |
4833 return (void *)fd; | |
4834 } | |
4835 | |
4836 /* | |
4837 * Convert the string "str[slen]" with iconv(). | |
4838 * If "unconvlenp" is not NULL handle the string ending in an incomplete | |
4839 * sequence and set "*unconvlenp" to the length of it. | |
4840 * Returns the converted string in allocated memory. NULL for an error. | |
1904 | 4841 * If resultlenp is not NULL, sets it to the result length in bytes. |
7 | 4842 */ |
4843 static char_u * | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4844 iconv_string( |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4845 vimconv_T *vcp, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4846 char_u *str, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4847 int slen, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4848 int *unconvlenp, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4849 int *resultlenp) |
7 | 4850 { |
4851 const char *from; | |
4852 size_t fromlen; | |
4853 char *to; | |
4854 size_t tolen; | |
4855 size_t len = 0; | |
4856 size_t done = 0; | |
4857 char_u *result = NULL; | |
4858 char_u *p; | |
4859 int l; | |
4860 | |
4861 from = (char *)str; | |
4862 fromlen = slen; | |
4863 for (;;) | |
4864 { | |
4865 if (len == 0 || ICONV_ERRNO == ICONV_E2BIG) | |
4866 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4867 // 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
|
4868 // increase the buffer size. |
7 | 4869 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
|
4870 p = alloc(len); |
7 | 4871 if (p != NULL && done > 0) |
4872 mch_memmove(p, result, done); | |
4873 vim_free(result); | |
4874 result = p; | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4875 if (result == NULL) // out of memory |
7 | 4876 break; |
4877 } | |
4878 | |
4879 to = (char *)result + done; | |
4880 tolen = len - done - 2; | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4881 // 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
|
4882 // casting the second argument to void *. |
7 | 4883 if (iconv(vcp->vc_fd, (void *)&from, &fromlen, &to, &tolen) |
4884 != (size_t)-1) | |
4885 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4886 // Finished, append a NUL. |
7 | 4887 *to = NUL; |
4888 break; | |
4889 } | |
4890 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4891 // 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
|
4892 // iconv library may use one of them. |
7 | 4893 if (!vcp->vc_fail && unconvlenp != NULL |
4894 && (ICONV_ERRNO == ICONV_EINVAL || ICONV_ERRNO == EINVAL)) | |
4895 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4896 // Handle an incomplete sequence at the end. |
7 | 4897 *to = NUL; |
835 | 4898 *unconvlenp = (int)fromlen; |
7 | 4899 break; |
4900 } | |
4901 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4902 // 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
|
4903 // iconv library may use one of them. |
7 | 4904 else if (!vcp->vc_fail |
4905 && (ICONV_ERRNO == ICONV_EILSEQ || ICONV_ERRNO == EILSEQ | |
4906 || ICONV_ERRNO == ICONV_EINVAL || ICONV_ERRNO == EINVAL)) | |
4907 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4908 // 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
|
4909 // 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
|
4910 // situations we don't know what to skip anyway. |
7 | 4911 *to++ = '?'; |
4912 if ((*mb_ptr2cells)((char_u *)from) > 1) | |
4913 *to++ = '?'; | |
221 | 4914 if (enc_utf8) |
835 | 4915 l = utfc_ptr2len_len((char_u *)from, (int)fromlen); |
221 | 4916 else |
4917 { | |
474 | 4918 l = (*mb_ptr2len)((char_u *)from); |
227 | 4919 if (l > (int)fromlen) |
835 | 4920 l = (int)fromlen; |
221 | 4921 } |
7 | 4922 from += l; |
4923 fromlen -= l; | |
4924 } | |
4925 else if (ICONV_ERRNO != ICONV_E2BIG) | |
4926 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4927 // conversion failed |
13244
ac42c4b11dbc
patch 8.0.1496: clearing a pointer takes two lines
Christian Brabandt <cb@256bit.org>
parents:
13117
diff
changeset
|
4928 VIM_CLEAR(result); |
7 | 4929 break; |
4930 } | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4931 // Not enough room or skipping illegal sequence. |
7 | 4932 done = to - (char *)result; |
4933 } | |
1904 | 4934 |
2766 | 4935 if (resultlenp != NULL && result != NULL) |
1904 | 4936 *resultlenp = (int)(to - (char *)result); |
7 | 4937 return result; |
4938 } | |
4939 | |
4940 # if defined(DYNAMIC_ICONV) || defined(PROTO) | |
4941 /* | |
4942 * Dynamically load the "iconv.dll" on Win32. | |
4943 */ | |
4944 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4945 # 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
|
4946 # define HINSTANCE int |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4947 # endif |
297 | 4948 static HINSTANCE hIconvDLL = 0; |
4949 static HINSTANCE hMsvcrtDLL = 0; | |
7 | 4950 |
7734
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4951 # ifndef DYNAMIC_ICONV_DLL |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4952 # define DYNAMIC_ICONV_DLL "iconv.dll" |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4953 # 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
|
4954 # 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
|
4955 # 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
|
4956 # endif |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4957 # ifndef DYNAMIC_MSVCRT_DLL |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4958 # define DYNAMIC_MSVCRT_DLL "msvcrt.dll" |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4959 # endif |
7 | 4960 |
4961 /* | |
4962 * Try opening the iconv.dll and return TRUE if iconv() can be used. | |
4963 */ | |
4964 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
4965 iconv_enabled(int verbose) |
7 | 4966 { |
4967 if (hIconvDLL != 0 && hMsvcrtDLL != 0) | |
4968 return TRUE; | |
7162
fe090e9cd10a
commit https://github.com/vim/vim/commit/9d6ca1cc5ebb6e61cc2ef73aecfbb0bdbb65432f
Christian Brabandt <cb@256bit.org>
parents:
6864
diff
changeset
|
4969 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4970 // 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
|
4971 // 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
|
4972 #ifdef DYNAMIC_ICONV_DLL_ALT2 |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4973 if (hIconvDLL == 0) |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4974 hIconvDLL = vimLoadLib(DYNAMIC_ICONV_DLL_ALT2); |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4975 #endif |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4976 #ifdef DYNAMIC_ICONV_DLL_ALT3 |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4977 if (hIconvDLL == 0) |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4978 hIconvDLL = vimLoadLib(DYNAMIC_ICONV_DLL_ALT3); |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4979 #endif |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4980 if (hIconvDLL == 0) |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4981 hIconvDLL = vimLoadLib(DYNAMIC_ICONV_DLL); |
616769d423fc
commit https://github.com/vim/vim/commit/938ee834d345062cd94f8fdfd54fad0019432a83
Christian Brabandt <cb@256bit.org>
parents:
7330
diff
changeset
|
4982 #ifdef DYNAMIC_ICONV_DLL_ALT1 |
7162
fe090e9cd10a
commit https://github.com/vim/vim/commit/9d6ca1cc5ebb6e61cc2ef73aecfbb0bdbb65432f
Christian Brabandt <cb@256bit.org>
parents:
6864
diff
changeset
|
4983 if (hIconvDLL == 0) |
fe090e9cd10a
commit https://github.com/vim/vim/commit/9d6ca1cc5ebb6e61cc2ef73aecfbb0bdbb65432f
Christian Brabandt <cb@256bit.org>
parents:
6864
diff
changeset
|
4984 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
|
4985 #endif |
7162
fe090e9cd10a
commit https://github.com/vim/vim/commit/9d6ca1cc5ebb6e61cc2ef73aecfbb0bdbb65432f
Christian Brabandt <cb@256bit.org>
parents:
6864
diff
changeset
|
4986 |
7 | 4987 if (hIconvDLL != 0) |
2612 | 4988 hMsvcrtDLL = vimLoadLib(DYNAMIC_MSVCRT_DLL); |
7 | 4989 if (hIconvDLL == 0 || hMsvcrtDLL == 0) |
4990 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
4991 // 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
|
4992 // done whenever a conversion is attempted. |
7 | 4993 if (verbose && p_verbose > 0) |
292 | 4994 { |
4995 verbose_enter(); | |
26877
06a137af96f8
patch 8.2.3967: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents:
26865
diff
changeset
|
4996 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
|
4997 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
|
4998 GetWin32Error()); |
292 | 4999 verbose_leave(); |
5000 } | |
7 | 5001 iconv_end(); |
5002 return FALSE; | |
5003 } | |
5004 | |
29105
faf7fcd1c8d5
patch 8.2.5073: clang on MS-Windows produces warnings
Bram Moolenaar <Bram@vim.org>
parents:
28790
diff
changeset
|
5005 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
|
5006 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
|
5007 GetProcAddress(hIconvDLL, "libiconv"); |
faf7fcd1c8d5
patch 8.2.5073: clang on MS-Windows produces warnings
Bram Moolenaar <Bram@vim.org>
parents:
28790
diff
changeset
|
5008 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
|
5009 GetProcAddress(hIconvDLL, "libiconv_open"); |
faf7fcd1c8d5
patch 8.2.5073: clang on MS-Windows produces warnings
Bram Moolenaar <Bram@vim.org>
parents:
28790
diff
changeset
|
5010 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
|
5011 GetProcAddress(hIconvDLL, "libiconv_close"); |
faf7fcd1c8d5
patch 8.2.5073: clang on MS-Windows produces warnings
Bram Moolenaar <Bram@vim.org>
parents:
28790
diff
changeset
|
5012 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
|
5013 GetProcAddress(hIconvDLL, "libiconvctl"); |
faf7fcd1c8d5
patch 8.2.5073: clang on MS-Windows produces warnings
Bram Moolenaar <Bram@vim.org>
parents:
28790
diff
changeset
|
5014 iconv_errno = (int *(*)(void))get_dll_import_func(hIconvDLL, "_errno"); |
4025 | 5015 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
|
5016 iconv_errno = (int *(*)(void))GetProcAddress(hMsvcrtDLL, "_errno"); |
7 | 5017 if (iconv == NULL || iconv_open == NULL || iconv_close == NULL |
5018 || iconvctl == NULL || iconv_errno == NULL) | |
5019 { | |
5020 iconv_end(); | |
5021 if (verbose && p_verbose > 0) | |
292 | 5022 { |
5023 verbose_enter(); | |
26877
06a137af96f8
patch 8.2.3967: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents:
26865
diff
changeset
|
5024 semsg(_(e_could_not_load_library_function_str), "for libiconv"); |
292 | 5025 verbose_leave(); |
5026 } | |
7 | 5027 return FALSE; |
5028 } | |
5029 return TRUE; | |
5030 } | |
5031 | |
5032 void | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5033 iconv_end(void) |
7 | 5034 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5035 // Don't use iconv() when inputting or outputting characters. |
7 | 5036 if (input_conv.vc_type == CONV_ICONV) |
5037 convert_setup(&input_conv, NULL, NULL); | |
5038 if (output_conv.vc_type == CONV_ICONV) | |
5039 convert_setup(&output_conv, NULL, NULL); | |
5040 | |
5041 if (hIconvDLL != 0) | |
5042 FreeLibrary(hIconvDLL); | |
5043 if (hMsvcrtDLL != 0) | |
5044 FreeLibrary(hMsvcrtDLL); | |
5045 hIconvDLL = 0; | |
5046 hMsvcrtDLL = 0; | |
5047 } | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5048 # endif // DYNAMIC_ICONV |
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5049 # endif // USE_ICONV |
7 | 5050 |
18008
8ae333756614
patch 8.1.2000: plugin cannot get the current IME status
Bram Moolenaar <Bram@vim.org>
parents:
17312
diff
changeset
|
5051 #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
|
5052 /* |
8ae333756614
patch 8.1.2000: plugin cannot get the current IME status
Bram Moolenaar <Bram@vim.org>
parents:
17312
diff
changeset
|
5053 * "getimstatus()" function |
8ae333756614
patch 8.1.2000: plugin cannot get the current IME status
Bram Moolenaar <Bram@vim.org>
parents:
17312
diff
changeset
|
5054 */ |
8ae333756614
patch 8.1.2000: plugin cannot get the current IME status
Bram Moolenaar <Bram@vim.org>
parents:
17312
diff
changeset
|
5055 void |
8ae333756614
patch 8.1.2000: plugin cannot get the current IME status
Bram Moolenaar <Bram@vim.org>
parents:
17312
diff
changeset
|
5056 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
|
5057 { |
8ae333756614
patch 8.1.2000: plugin cannot get the current IME status
Bram Moolenaar <Bram@vim.org>
parents:
17312
diff
changeset
|
5058 # 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
|
5059 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
|
5060 # endif |
8ae333756614
patch 8.1.2000: plugin cannot get the current IME status
Bram Moolenaar <Bram@vim.org>
parents:
17312
diff
changeset
|
5061 } |
25206
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5062 |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5063 /* |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5064 * iconv() function |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5065 */ |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5066 void |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5067 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
|
5068 { |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5069 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
|
5070 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
|
5071 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
|
5072 vimconv_T vimconv; |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5073 |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5074 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
|
5075 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
|
5076 |
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
|
5077 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
|
5078 && (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
|
5079 || 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
|
5080 || 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
|
5081 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
|
5082 |
25206
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5083 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
|
5084 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
|
5085 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
|
5086 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
|
5087 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
|
5088 |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5089 // 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
|
5090 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
|
5091 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
|
5092 else |
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 = 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
|
5094 |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5095 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
|
5096 vim_free(from); |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5097 vim_free(to); |
dc66d0284518
patch 8.2.3139: functions for string manipulation are spread out
Bram Moolenaar <Bram@vim.org>
parents:
25092
diff
changeset
|
5098 } |
18008
8ae333756614
patch 8.1.2000: plugin cannot get the current IME status
Bram Moolenaar <Bram@vim.org>
parents:
17312
diff
changeset
|
5099 #endif |
7 | 5100 |
5101 /* | |
5102 * Setup "vcp" for conversion from "from" to "to". | |
5103 * The names must have been made canonical with enc_canonize(). | |
5104 * vcp->vc_type must have been initialized to CONV_NONE. | |
5105 * Note: cannot be used for conversion from/to ucs-2 and ucs-4 (will use utf-8 | |
5106 * instead). | |
5107 * Afterwards invoke with "from" and "to" equal to NULL to cleanup. | |
5108 * Return FAIL when conversion is not supported, OK otherwise. | |
5109 */ | |
5110 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5111 convert_setup(vimconv_T *vcp, char_u *from, char_u *to) |
7 | 5112 { |
1904 | 5113 return convert_setup_ext(vcp, from, TRUE, to, TRUE); |
5114 } | |
5115 | |
5116 /* | |
5117 * As convert_setup(), but only when from_unicode_is_utf8 is TRUE will all | |
5118 * "from" unicode charsets be considered utf-8. Same for "to". | |
5119 */ | |
5120 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5121 convert_setup_ext( |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5122 vimconv_T *vcp, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5123 char_u *from, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5124 int from_unicode_is_utf8, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5125 char_u *to, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5126 int to_unicode_is_utf8) |
1904 | 5127 { |
7 | 5128 int from_prop; |
5129 int to_prop; | |
1904 | 5130 int from_is_utf8; |
5131 int to_is_utf8; | |
7 | 5132 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5133 // Reset to no conversion. |
15597
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
5134 #ifdef USE_ICONV |
7 | 5135 if (vcp->vc_type == CONV_ICONV && vcp->vc_fd != (iconv_t)-1) |
5136 iconv_close(vcp->vc_fd); | |
15597
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
5137 #endif |
7 | 5138 vcp->vc_type = CONV_NONE; |
5139 vcp->vc_factor = 1; | |
5140 vcp->vc_fail = FALSE; | |
5141 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5142 // No conversion when one of the names is empty or they are equal. |
7 | 5143 if (from == NULL || *from == NUL || to == NULL || *to == NUL |
5144 || STRCMP(from, to) == 0) | |
5145 return OK; | |
5146 | |
5147 from_prop = enc_canon_props(from); | |
5148 to_prop = enc_canon_props(to); | |
1904 | 5149 if (from_unicode_is_utf8) |
5150 from_is_utf8 = from_prop & ENC_UNICODE; | |
5151 else | |
5152 from_is_utf8 = from_prop == ENC_UNICODE; | |
5153 if (to_unicode_is_utf8) | |
5154 to_is_utf8 = to_prop & ENC_UNICODE; | |
5155 else | |
5156 to_is_utf8 = to_prop == ENC_UNICODE; | |
5157 | |
5158 if ((from_prop & ENC_LATIN1) && to_is_utf8) | |
7 | 5159 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5160 // Internal latin1 -> utf-8 conversion. |
7 | 5161 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
|
5162 vcp->vc_factor = 2; // up to twice as long |
7 | 5163 } |
1904 | 5164 else if ((from_prop & ENC_LATIN9) && to_is_utf8) |
26 | 5165 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5166 // Internal latin9 -> utf-8 conversion. |
26 | 5167 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
|
5168 vcp->vc_factor = 3; // up to three as long (euro sign) |
26 | 5169 } |
1904 | 5170 else if (from_is_utf8 && (to_prop & ENC_LATIN1)) |
7 | 5171 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5172 // Internal utf-8 -> latin1 conversion. |
7 | 5173 vcp->vc_type = CONV_TO_LATIN1; |
5174 } | |
1904 | 5175 else if (from_is_utf8 && (to_prop & ENC_LATIN9)) |
26 | 5176 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5177 // Internal utf-8 -> latin9 conversion. |
26 | 5178 vcp->vc_type = CONV_TO_LATIN9; |
5179 } | |
15868
7fad90423bd2
patch 8.1.0941: macros for MS-Windows are inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
15636
diff
changeset
|
5180 #ifdef MSWIN |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5181 // Win32-specific codepage <-> codepage conversion without iconv. |
1904 | 5182 else if ((from_is_utf8 || encname2codepage(from) > 0) |
5183 && (to_is_utf8 || encname2codepage(to) > 0)) | |
7 | 5184 { |
5185 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
|
5186 vcp->vc_factor = 2; // up to twice as long |
1904 | 5187 vcp->vc_cpfrom = from_is_utf8 ? 0 : encname2codepage(from); |
5188 vcp->vc_cpto = to_is_utf8 ? 0 : encname2codepage(to); | |
7 | 5189 } |
5190 #endif | |
12716
351cf7c67bbe
patch 8.0.1236: Mac features are confusing
Christian Brabandt <cb@256bit.org>
parents:
12650
diff
changeset
|
5191 #ifdef MACOS_CONVERT |
7 | 5192 else if ((from_prop & ENC_MACROMAN) && (to_prop & ENC_LATIN1)) |
5193 { | |
5194 vcp->vc_type = CONV_MAC_LATIN1; | |
5195 } | |
1904 | 5196 else if ((from_prop & ENC_MACROMAN) && to_is_utf8) |
7 | 5197 { |
5198 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
|
5199 vcp->vc_factor = 2; // up to twice as long |
7 | 5200 } |
5201 else if ((from_prop & ENC_LATIN1) && (to_prop & ENC_MACROMAN)) | |
5202 { | |
5203 vcp->vc_type = CONV_LATIN1_MAC; | |
5204 } | |
1904 | 5205 else if (from_is_utf8 && (to_prop & ENC_MACROMAN)) |
7 | 5206 { |
5207 vcp->vc_type = CONV_UTF8_MAC; | |
5208 } | |
5209 #endif | |
15597
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
5210 #ifdef USE_ICONV |
7 | 5211 else |
5212 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5213 // Use iconv() for conversion. |
7 | 5214 vcp->vc_fd = (iconv_t)my_iconv_open( |
1904 | 5215 to_is_utf8 ? (char_u *)"utf-8" : to, |
5216 from_is_utf8 ? (char_u *)"utf-8" : from); | |
7 | 5217 if (vcp->vc_fd != (iconv_t)-1) |
5218 { | |
5219 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
|
5220 vcp->vc_factor = 4; // could be longer too... |
7 | 5221 } |
5222 } | |
15597
536dd2bc5ac9
patch 8.1.0806: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15555
diff
changeset
|
5223 #endif |
7 | 5224 if (vcp->vc_type == CONV_NONE) |
5225 return FAIL; | |
167 | 5226 |
7 | 5227 return OK; |
5228 } | |
5229 | |
15868
7fad90423bd2
patch 8.1.0941: macros for MS-Windows are inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
15636
diff
changeset
|
5230 #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
|
5231 || defined(PROTO) |
7 | 5232 /* |
5233 * Do conversion on typed input characters in-place. | |
5234 * The input and output are not NUL terminated! | |
5235 * Returns the length after conversion. | |
5236 */ | |
5237 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5238 convert_input(char_u *ptr, int len, int maxlen) |
7 | 5239 { |
5240 return convert_input_safe(ptr, len, maxlen, NULL, NULL); | |
5241 } | |
5242 #endif | |
5243 | |
5244 /* | |
5245 * Like convert_input(), but when there is an incomplete byte sequence at the | |
5246 * end return that as an allocated string in "restp" and set "*restlenp" to | |
5247 * the length. If "restp" is NULL it is not used. | |
5248 */ | |
5249 int | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5250 convert_input_safe( |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5251 char_u *ptr, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5252 int len, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5253 int maxlen, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5254 char_u **restp, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5255 int *restlenp) |
7 | 5256 { |
5257 char_u *d; | |
5258 int dlen = len; | |
5259 int unconvertlen = 0; | |
5260 | |
5261 d = string_convert_ext(&input_conv, ptr, &dlen, | |
5262 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
|
5263 if (d == NULL) |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
5264 return dlen; |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
5265 |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
5266 if (dlen <= maxlen) |
7 | 5267 { |
31728
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
5268 if (unconvertlen > 0) |
7 | 5269 { |
31728
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
5270 // 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
|
5271 *restp = alloc(unconvertlen); |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
5272 if (*restp != NULL) |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
5273 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
|
5274 *restlenp = unconvertlen; |
7 | 5275 } |
31728
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
5276 mch_memmove(ptr, d, dlen); |
7 | 5277 } |
31728
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
5278 else |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
5279 // 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
|
5280 // have done something wrong!) |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
5281 dlen = len; |
238ca27dbfd2
patch 9.0.1196: code is indented more than necessary
Bram Moolenaar <Bram@vim.org>
parents:
31678
diff
changeset
|
5282 vim_free(d); |
7 | 5283 return dlen; |
5284 } | |
5285 | |
5286 /* | |
5287 * Convert text "ptr[*lenp]" according to "vcp". | |
5288 * Returns the result in allocated memory and sets "*lenp". | |
5289 * When "lenp" is NULL, use NUL terminated strings. | |
5290 * Illegal chars are often changed to "?", unless vcp->vc_fail is set. | |
5291 * When something goes wrong, NULL is returned and "*lenp" is unchanged. | |
5292 */ | |
5293 char_u * | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5294 string_convert( |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5295 vimconv_T *vcp, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5296 char_u *ptr, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5297 int *lenp) |
7 | 5298 { |
5299 return string_convert_ext(vcp, ptr, lenp, NULL); | |
5300 } | |
5301 | |
5302 /* | |
5303 * Like string_convert(), but when "unconvlenp" is not NULL and there are is | |
5304 * an incomplete sequence at the end it is not converted and "*unconvlenp" is | |
5305 * set to the number of remaining bytes. | |
5306 */ | |
5307 char_u * | |
7827
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5308 string_convert_ext( |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5309 vimconv_T *vcp, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5310 char_u *ptr, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5311 int *lenp, |
41789f16d6b2
commit https://github.com/vim/vim/commit/52ea13da0fe86df1abf34de52841e367035170c0
Christian Brabandt <cb@256bit.org>
parents:
7803
diff
changeset
|
5312 int *unconvlenp) |
7 | 5313 { |
5314 char_u *retval = NULL; | |
5315 char_u *d; | |
5316 int len; | |
5317 int i; | |
5318 int l; | |
5319 int c; | |
5320 | |
5321 if (lenp == NULL) | |
5322 len = (int)STRLEN(ptr); | |
5323 else | |
5324 len = *lenp; | |
5325 if (len == 0) | |
5326 return vim_strsave((char_u *)""); | |
5327 | |
5328 switch (vcp->vc_type) | |
5329 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5330 case CONV_TO_UTF8: // latin1 to utf-8 conversion |
7 | 5331 retval = alloc(len * 2 + 1); |
5332 if (retval == NULL) | |
5333 break; | |
5334 d = retval; | |
5335 for (i = 0; i < len; ++i) | |
5336 { | |
26 | 5337 c = ptr[i]; |
5338 if (c < 0x80) | |
5339 *d++ = c; | |
7 | 5340 else |
5341 { | |
26 | 5342 *d++ = 0xc0 + ((unsigned)c >> 6); |
5343 *d++ = 0x80 + (c & 0x3f); | |
7 | 5344 } |
5345 } | |
5346 *d = NUL; | |
5347 if (lenp != NULL) | |
5348 *lenp = (int)(d - retval); | |
5349 break; | |
5350 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5351 case CONV_9_TO_UTF8: // latin9 to utf-8 conversion |
26 | 5352 retval = alloc(len * 3 + 1); |
5353 if (retval == NULL) | |
5354 break; | |
5355 d = retval; | |
5356 for (i = 0; i < len; ++i) | |
5357 { | |
5358 c = ptr[i]; | |
5359 switch (c) | |
5360 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5361 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
|
5362 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
|
5363 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
|
5364 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
|
5365 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
|
5366 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
|
5367 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
|
5368 case 0xbe: c = 0x0178; break; // Y |
26 | 5369 } |
5370 d += utf_char2bytes(c, d); | |
5371 } | |
5372 *d = NUL; | |
5373 if (lenp != NULL) | |
5374 *lenp = (int)(d - retval); | |
5375 break; | |
5376 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5377 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
|
5378 case CONV_TO_LATIN9: // utf-8 to latin9 conversion |
7 | 5379 retval = alloc(len + 1); |
5380 if (retval == NULL) | |
5381 break; | |
5382 d = retval; | |
5383 for (i = 0; i < len; ++i) | |
5384 { | |
2015 | 5385 l = utf_ptr2len_len(ptr + i, len - i); |
7 | 5386 if (l == 0) |
5387 *d++ = NUL; | |
5388 else if (l == 1) | |
5389 { | |
2015 | 5390 int l_w = utf8len_tab_zero[ptr[i]]; |
5391 | |
5392 if (l_w == 0) | |
5393 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5394 // Illegal utf-8 byte cannot be converted |
2015 | 5395 vim_free(retval); |
5396 return NULL; | |
5397 } | |
5398 if (unconvlenp != NULL && l_w > len - i) | |
7 | 5399 { |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5400 // Incomplete sequence at the end. |
7 | 5401 *unconvlenp = len - i; |
5402 break; | |
5403 } | |
5404 *d++ = ptr[i]; | |
5405 } | |
5406 else | |
5407 { | |
5408 c = utf_ptr2char(ptr + i); | |
26 | 5409 if (vcp->vc_type == CONV_TO_LATIN9) |
5410 switch (c) | |
5411 { | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5412 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
|
5413 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
|
5414 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
|
5415 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
|
5416 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
|
5417 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
|
5418 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
|
5419 case 0x0178: c = 0xbe; break; // Y |
26 | 5420 case 0xa4: |
5421 case 0xa6: | |
5422 case 0xa8: | |
5423 case 0xb4: | |
5424 case 0xb8: | |
5425 case 0xbc: | |
5426 case 0xbd: | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5427 case 0xbe: c = 0x100; break; // not in latin9 |
26 | 5428 } |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5429 if (!utf_iscomposing(c)) // skip composing chars |
7 | 5430 { |
5431 if (c < 0x100) | |
5432 *d++ = c; | |
5433 else if (vcp->vc_fail) | |
5434 { | |
5435 vim_free(retval); | |
5436 return NULL; | |
5437 } | |
5438 else | |
5439 { | |
5440 *d++ = 0xbf; | |
5441 if (utf_char2cells(c) > 1) | |
5442 *d++ = '?'; | |
5443 } | |
5444 } | |
5445 i += l - 1; | |
5446 } | |
5447 } | |
5448 *d = NUL; | |
5449 if (lenp != NULL) | |
5450 *lenp = (int)(d - retval); | |
5451 break; | |
5452 | |
765 | 5453 # ifdef MACOS_CONVERT |
7 | 5454 case CONV_MAC_LATIN1: |
5455 retval = mac_string_convert(ptr, len, lenp, vcp->vc_fail, | |
18 | 5456 'm', 'l', unconvlenp); |
7 | 5457 break; |
5458 | |
5459 case CONV_LATIN1_MAC: | |
5460 retval = mac_string_convert(ptr, len, lenp, vcp->vc_fail, | |
18 | 5461 'l', 'm', unconvlenp); |
7 | 5462 break; |
5463 | |
5464 case CONV_MAC_UTF8: | |
5465 retval = mac_string_convert(ptr, len, lenp, vcp->vc_fail, | |
18 | 5466 'm', 'u', unconvlenp); |
7 | 5467 break; |
5468 | |
5469 case CONV_UTF8_MAC: | |
5470 retval = mac_string_convert(ptr, len, lenp, vcp->vc_fail, | |
18 | 5471 'u', 'm', unconvlenp); |
7 | 5472 break; |
5473 # endif | |
5474 | |
5475 # ifdef USE_ICONV | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5476 case CONV_ICONV: // conversion with output_conv.vc_fd |
1904 | 5477 retval = iconv_string(vcp, ptr, len, unconvlenp, lenp); |
7 | 5478 break; |
5479 # endif | |
15868
7fad90423bd2
patch 8.1.0941: macros for MS-Windows are inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
15636
diff
changeset
|
5480 # ifdef MSWIN |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5481 case CONV_CODEPAGE: // codepage -> codepage |
7 | 5482 { |
5483 int retlen; | |
5484 int tmp_len; | |
5485 short_u *tmp; | |
5486 | |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5487 // 1. codepage/UTF-8 -> ucs-2. |
7 | 5488 if (vcp->vc_cpfrom == 0) |
1752 | 5489 tmp_len = utf8_to_utf16(ptr, len, NULL, NULL); |
7 | 5490 else |
4122 | 5491 { |
5492 tmp_len = MultiByteToWideChar(vcp->vc_cpfrom, | |
5493 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
|
5494 (char *)ptr, len, 0, 0); |
4122 | 5495 if (tmp_len == 0 |
5496 && GetLastError() == ERROR_NO_UNICODE_TRANSLATION) | |
5497 { | |
5498 if (lenp != NULL) | |
5499 *lenp = 0; | |
5500 if (unconvlenp != NULL) | |
5501 *unconvlenp = len; | |
5502 retval = alloc(1); | |
5503 if (retval) | |
5504 retval[0] = NUL; | |
5505 return retval; | |
5506 } | |
5507 } | |
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
|
5508 tmp = ALLOC_MULT(short_u, tmp_len); |
7 | 5509 if (tmp == NULL) |
5510 break; | |
5511 if (vcp->vc_cpfrom == 0) | |
1752 | 5512 utf8_to_utf16(ptr, len, tmp, unconvlenp); |
7 | 5513 else |
8080
b6cb94ad97a4
commit https://github.com/vim/vim/commit/6aa2cd4be287f35f95f35c2cec6d5a24f53c4d3c
Christian Brabandt <cb@256bit.org>
parents:
7827
diff
changeset
|
5514 MultiByteToWideChar(vcp->vc_cpfrom, 0, |
b6cb94ad97a4
commit https://github.com/vim/vim/commit/6aa2cd4be287f35f95f35c2cec6d5a24f53c4d3c
Christian Brabandt <cb@256bit.org>
parents:
7827
diff
changeset
|
5515 (char *)ptr, len, tmp, tmp_len); |
7 | 5516 |
18800
f41b55f9357c
patch 8.1.2388: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
18742
diff
changeset
|
5517 // 2. ucs-2 -> codepage/UTF-8. |
7 | 5518 if (vcp->vc_cpto == 0) |
1752 | 5519 retlen = utf16_to_utf8(tmp, tmp_len, NULL); |
7 | 5520 else |
5521 retlen = WideCharToMultiByte(vcp->vc_cpto, 0, | |
5522 tmp, tmp_len, 0, 0, 0, 0); | |
5523 retval = alloc(retlen + 1); | |
5524 if (retval != NULL) | |
5525 { | |
5526 if (vcp->vc_cpto == 0) | |
1752 | 5527 utf16_to_utf8(tmp, tmp_len, retval); |
7 | 5528 else |
5529 WideCharToMultiByte(vcp->vc_cpto, 0, | |
8080
b6cb94ad97a4
commit https://github.com/vim/vim/commit/6aa2cd4be287f35f95f35c2cec6d5a24f53c4d3c
Christian Brabandt <cb@256bit.org>
parents:
7827
diff
changeset
|
5530 tmp, tmp_len, |
b6cb94ad97a4
commit https://github.com/vim/vim/commit/6aa2cd4be287f35f95f35c2cec6d5a24f53c4d3c
Christian Brabandt <cb@256bit.org>
parents:
7827
diff
changeset
|
5531 (char *)retval, retlen, 0, 0); |
7 | 5532 retval[retlen] = NUL; |
5533 if (lenp != NULL) | |
5534 *lenp = retlen; | |
5535 } | |
5536 vim_free(tmp); | |
5537 break; | |
5538 } | |
5539 # endif | |
5540 } | |
5541 | |
5542 return retval; | |
5543 } | |
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
|
5544 |
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
|
5545 #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
|
5546 |
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
|
5547 /* |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5548 * 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
|
5549 */ |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5550 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
|
5551 { |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5552 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
|
5553 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
|
5554 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
|
5555 } 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
|
5556 |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5557 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
|
5558 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
|
5559 |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5560 /* |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5561 * 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
|
5562 * 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
|
5563 */ |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5564 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
|
5565 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
|
5566 { |
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 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
|
5568 |
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 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
|
5570 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
|
5571 |
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 // 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
|
5573 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
|
5574 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
|
5575 |
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 // 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
|
5577 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
|
5578 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
|
5579 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
|
5580 { |
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 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
|
5582 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
|
5583 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
|
5584 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
|
5585 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
|
5586 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
|
5587 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
|
5588 } |
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 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
|
5590 } |
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 |
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 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
|
5593 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
|
5594 { |
21975
2030f8267db9
patch 8.2.1537: memory acccess error when using setcellwidths()
Bram Moolenaar <Bram@vim.org>
parents:
21973
diff
changeset
|
5595 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
|
5596 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
|
5597 |
34309
d7cfd8fb1d75
patch 9.1.0089: qsort() comparison functions should be transitive
Christian Brabandt <cb@256bit.org>
parents:
34074
diff
changeset
|
5598 return li1->li_tv.vval.v_number == li2->li_tv.vval.v_number ? 0 : |
d7cfd8fb1d75
patch 9.1.0089: qsort() comparison functions should be transitive
Christian Brabandt <cb@256bit.org>
parents:
34074
diff
changeset
|
5599 li1->li_tv.vval.v_number > li2->li_tv.vval.v_number ? 1 : -1; |
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
|
5600 } |
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 |
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 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
|
5603 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
|
5604 { |
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 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
|
5606 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
|
5607 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
|
5608 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
|
5609 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
|
5610 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
|
5611 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
|
5612 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
|
5613 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
|
5614 |
30015
adb0de8be4ce
patch 9.0.0345: error message for list argument could be clearer
Bram Moolenaar <Bram@vim.org>
parents:
29761
diff
changeset
|
5615 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
|
5616 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
|
5617 |
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
|
5618 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
|
5619 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
|
5620 { |
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 // Clearing the table. |
32120
97255d909654
patch 9.0.1391: "clear" macros are not always used
Bram Moolenaar <Bram@vim.org>
parents:
32118
diff
changeset
|
5622 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
|
5623 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
|
5624 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
|
5625 } |
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 |
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 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
|
5628 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
|
5629 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
|
5630 |
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 // 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
|
5632 // 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
|
5633 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
|
5634 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
|
5635 { |
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 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
|
5637 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
|
5638 |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5639 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
|
5640 { |
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 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
|
5642 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
|
5643 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
|
5644 } |
21975
2030f8267db9
patch 8.2.1537: memory acccess error when using setcellwidths()
Bram Moolenaar <Bram@vim.org>
parents:
21973
diff
changeset
|
5645 |
2030f8267db9
patch 8.2.1537: memory acccess error when using setcellwidths()
Bram Moolenaar <Bram@vim.org>
parents:
21973
diff
changeset
|
5646 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
|
5647 ptrs[item] = lili; |
2030f8267db9
patch 8.2.1537: memory acccess error when using setcellwidths()
Bram Moolenaar <Bram@vim.org>
parents:
21973
diff
changeset
|
5648 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
|
5649 { |
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 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
|
5651 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
|
5652 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
|
5653 { |
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 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
|
5655 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
|
5656 { |
31782
a19ef442c77a
patch 9.0.1223: cannot use setcellwidths() below 0x100
Bram Moolenaar <Bram@vim.org>
parents:
31768
diff
changeset
|
5657 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
|
5658 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
|
5659 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
|
5660 } |
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 } |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5662 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
|
5663 { |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5664 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
|
5665 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
|
5666 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
|
5667 } |
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 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
|
5669 || 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
|
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 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
|
5672 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
|
5673 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
|
5674 } |
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 } |
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 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
|
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 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
|
5679 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
|
5680 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
|
5681 } |
21975
2030f8267db9
patch 8.2.1537: memory acccess error when using setcellwidths()
Bram Moolenaar <Bram@vim.org>
parents:
21973
diff
changeset
|
5682 ++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
|
5683 } |
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 // 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
|
5686 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
|
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 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
|
5689 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
|
5690 { |
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 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
|
5692 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
|
5693 } |
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 // 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
|
5696 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
|
5697 { |
21975
2030f8267db9
patch 8.2.1537: memory acccess error when using setcellwidths()
Bram Moolenaar <Bram@vim.org>
parents:
21973
diff
changeset
|
5698 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
|
5699 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
|
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 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
|
5702 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
|
5703 { |
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 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
|
5705 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
|
5706 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
|
5707 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
|
5708 } |
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 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
|
5710 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
|
5711 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
|
5712 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
|
5713 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
|
5714 } |
0bc43a704f56
patch 8.2.1535: it is not possible to specify cell widths of characters
Bram Moolenaar <Bram@vim.org>
parents:
20695
diff
changeset
|
5715 |
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 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
|
5717 |
30e60bfd5fb3
patch 8.2.3545: setcellwidths() may make 'listchars' or 'fillchars' invalid
Bram Moolenaar <Bram@vim.org>
parents:
25384
diff
changeset
|
5718 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
|
5719 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
|
5720 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
|
5721 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
|
5722 |
29672
6b8aaf16af99
patch 9.0.0176: checking character options is duplicated and incomplete
Bram Moolenaar <Bram@vim.org>
parents:
29395
diff
changeset
|
5723 // 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
|
5724 // 'fillchars'. |
6b8aaf16af99
patch 9.0.0176: checking character options is duplicated and incomplete
Bram Moolenaar <Bram@vim.org>
parents:
29395
diff
changeset
|
5725 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
|
5726 if (error != NULL) |
9dce192d1ac2
patch 9.0.0036: 'fillchars' cannot have window-local values
Bram Moolenaar <Bram@vim.org>
parents:
29105
diff
changeset
|
5727 { |
9dce192d1ac2
patch 9.0.0036: 'fillchars' cannot have window-local values
Bram Moolenaar <Bram@vim.org>
parents:
29105
diff
changeset
|
5728 emsg(_(error)); |
9dce192d1ac2
patch 9.0.0036: 'fillchars' cannot have window-local values
Bram Moolenaar <Bram@vim.org>
parents:
29105
diff
changeset
|
5729 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
|
5730 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
|
5731 vim_free(table); |
9dce192d1ac2
patch 9.0.0036: 'fillchars' cannot have window-local values
Bram Moolenaar <Bram@vim.org>
parents:
29105
diff
changeset
|
5732 return; |
9dce192d1ac2
patch 9.0.0036: 'fillchars' cannot have window-local values
Bram Moolenaar <Bram@vim.org>
parents:
29105
diff
changeset
|
5733 } |
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 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
|
5736 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
|
5737 } |
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
|
5738 |
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
|
5739 void |
31760
f348559ce426
patch 9.0.1212: cannot read back what setcellwidths() has done
Bram Moolenaar <Bram@vim.org>
parents:
31728
diff
changeset
|
5740 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
|
5741 { |
f348559ce426
patch 9.0.1212: cannot read back what setcellwidths() has done
Bram Moolenaar <Bram@vim.org>
parents:
31728
diff
changeset
|
5742 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
|
5743 return; |
f348559ce426
patch 9.0.1212: cannot read back what setcellwidths() has done
Bram Moolenaar <Bram@vim.org>
parents:
31728
diff
changeset
|
5744 |
f348559ce426
patch 9.0.1212: cannot read back what setcellwidths() has done
Bram Moolenaar <Bram@vim.org>
parents:
31728
diff
changeset
|
5745 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
|
5746 { |
f348559ce426
patch 9.0.1212: cannot read back what setcellwidths() has done
Bram Moolenaar <Bram@vim.org>
parents:
31728
diff
changeset
|
5747 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
|
5748 if (entry == NULL) |
f348559ce426
patch 9.0.1212: cannot read back what setcellwidths() has done
Bram Moolenaar <Bram@vim.org>
parents:
31728
diff
changeset
|
5749 break; |
31768
3f0f639eed9a
patch 9.0.1216: Coverity warns for ignoring return value
Bram Moolenaar <Bram@vim.org>
parents:
31760
diff
changeset
|
5750 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
|
5751 || 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
|
5752 || 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
|
5753 || 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
|
5754 { |
3f0f639eed9a
patch 9.0.1216: Coverity warns for ignoring return value
Bram Moolenaar <Bram@vim.org>
parents:
31760
diff
changeset
|
5755 list_free(entry); |
3f0f639eed9a
patch 9.0.1216: Coverity warns for ignoring return value
Bram Moolenaar <Bram@vim.org>
parents:
31760
diff
changeset
|
5756 break; |
3f0f639eed9a
patch 9.0.1216: Coverity warns for ignoring return value
Bram Moolenaar <Bram@vim.org>
parents:
31760
diff
changeset
|
5757 } |
31760
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 } |
f348559ce426
patch 9.0.1212: cannot read back what setcellwidths() has done
Bram Moolenaar <Bram@vim.org>
parents:
31728
diff
changeset
|
5760 |
f348559ce426
patch 9.0.1212: cannot read back what setcellwidths() has done
Bram Moolenaar <Bram@vim.org>
parents:
31728
diff
changeset
|
5761 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
|
5762 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
|
5763 { |
25092
cd5e8df05a64
patch 8.2.3083: crash when passing null string to charclass()
Bram Moolenaar <Bram@vim.org>
parents:
25062
diff
changeset
|
5764 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
|
5765 || 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
|
5766 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
|
5767 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
|
5768 } |
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
|
5769 #endif |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33223
diff
changeset
|
5770 |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33223
diff
changeset
|
5771 /* |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33223
diff
changeset
|
5772 * 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
|
5773 * encoding options. |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33223
diff
changeset
|
5774 */ |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33223
diff
changeset
|
5775 char_u * |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33223
diff
changeset
|
5776 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
|
5777 { |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33223
diff
changeset
|
5778 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
|
5779 return NULL; |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33223
diff
changeset
|
5780 |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33223
diff
changeset
|
5781 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
|
5782 } |