Introduction
Introduction Statistics Contact Development Disclaimer Help
upperrune.c - sbase - suckless unix tools
git clone git://git.suckless.org/sbase
Log
Files
Refs
README
LICENSE
---
upperrune.c (6337B)
---
1 /* Automatically generated by mkrunetype.awk */
2 #include <stdlib.h>
3
4 #include "../utf.h"
5 #include "runetype.h"
6
7 static const Rune upper3[][2] = {
8 { 0x0100, 0x012E },
9 { 0x0132, 0x0136 },
10 { 0x0139, 0x0147 },
11 { 0x014A, 0x0176 },
12 { 0x0179, 0x017D },
13 { 0x0182, 0x0184 },
14 { 0x01A0, 0x01A4 },
15 { 0x01B3, 0x01B5 },
16 { 0x01CD, 0x01DB },
17 { 0x01DE, 0x01EE },
18 { 0x01F8, 0x021E },
19 { 0x0222, 0x0232 },
20 { 0x0246, 0x024E },
21 { 0x0370, 0x0372 },
22 { 0x03D8, 0x03EE },
23 { 0x0460, 0x0480 },
24 { 0x048A, 0x04BE },
25 { 0x04C1, 0x04CD },
26 { 0x04D0, 0x052E },
27 { 0x1E00, 0x1E94 },
28 { 0x1EA0, 0x1EFE },
29 { 0x2C67, 0x2C6B },
30 { 0x2C80, 0x2CE2 },
31 { 0x2CEB, 0x2CED },
32 { 0xA640, 0xA66C },
33 { 0xA680, 0xA69A },
34 { 0xA722, 0xA72E },
35 { 0xA732, 0xA76E },
36 { 0xA779, 0xA77B },
37 { 0xA77E, 0xA786 },
38 { 0xA790, 0xA792 },
39 { 0xA796, 0xA7A8 },
40 { 0xA7B4, 0xA7C2 },
41 { 0xA7C7, 0xA7C9 },
42 { 0xA7D6, 0xA7D8 },
43 };
44
45 static const Rune upper2[][3] = {
46 { 0x0041, 0x005A, 0x0061 },
47 { 0x00C0, 0x00D6, 0x00E0 },
48 { 0x00D8, 0x00DE, 0x00F8 },
49 { 0x0189, 0x018A, 0x0256 },
50 { 0x01B1, 0x01B2, 0x028A },
51 { 0x0388, 0x038A, 0x03AD },
52 { 0x038E, 0x038F, 0x03CD },
53 { 0x0391, 0x03A1, 0x03B1 },
54 { 0x03A3, 0x03AB, 0x03C3 },
55 { 0x03D2, 0x03D4, 0x03D2 },
56 { 0x03FD, 0x03FF, 0x037B },
57 { 0x0400, 0x040F, 0x0450 },
58 { 0x0410, 0x042F, 0x0430 },
59 { 0x0531, 0x0556, 0x0561 },
60 { 0x10A0, 0x10C5, 0x2D00 },
61 { 0x13A0, 0x13EF, 0xAB70 },
62 { 0x13F0, 0x13F5, 0x13F8 },
63 { 0x1C90, 0x1CBA, 0x10D0 },
64 { 0x1CBD, 0x1CBF, 0x10FD },
65 { 0x1F08, 0x1F0F, 0x1F00 },
66 { 0x1F18, 0x1F1D, 0x1F10 },
67 { 0x1F28, 0x1F2F, 0x1F20 },
68 { 0x1F38, 0x1F3F, 0x1F30 },
69 { 0x1F48, 0x1F4D, 0x1F40 },
70 { 0x1F68, 0x1F6F, 0x1F60 },
71 { 0x1FB8, 0x1FB9, 0x1FB0 },
72 { 0x1FBA, 0x1FBB, 0x1F70 },
73 { 0x1FC8, 0x1FCB, 0x1F72 },
74 { 0x1FD8, 0x1FD9, 0x1FD0 },
75 { 0x1FDA, 0x1FDB, 0x1F76 },
76 { 0x1FE8, 0x1FE9, 0x1FE0 },
77 { 0x1FEA, 0x1FEB, 0x1F7A },
78 { 0x1FF8, 0x1FF9, 0x1F78 },
79 { 0x1FFA, 0x1FFB, 0x1F7C },
80 { 0x210B, 0x210D, 0x210B },
81 { 0x2110, 0x2112, 0x2110 },
82 { 0x2119, 0x211D, 0x2119 },
83 { 0x212C, 0x212D, 0x212C },
84 { 0x2130, 0x2131, 0x2130 },
85 { 0x213E, 0x213F, 0x213E },
86 { 0x2C00, 0x2C2F, 0x2C30 },
87 { 0x2C7E, 0x2C7F, 0x023F },
88 { 0xFF21, 0xFF3A, 0xFF41 },
89 { 0x10400, 0x10427, 0x10428 },
90 { 0x104B0, 0x104D3, 0x104D8 },
91 { 0x10570, 0x1057A, 0x10597 },
92 { 0x1057C, 0x1058A, 0x105A3 },
93 { 0x1058C, 0x10592, 0x105B3 },
94 { 0x10594, 0x10595, 0x105BB },
95 { 0x10C80, 0x10CB2, 0x10CC0 },
96 { 0x118A0, 0x118BF, 0x118C0 },
97 { 0x16E40, 0x16E5F, 0x16E60 },
98 { 0x1D400, 0x1D419, 0x1D400 },
99 { 0x1D434, 0x1D44D, 0x1D434 },
100 { 0x1D468, 0x1D481, 0x1D468 },
101 { 0x1D49E, 0x1D49F, 0x1D49E },
102 { 0x1D4A5, 0x1D4A6, 0x1D4A5 },
103 { 0x1D4A9, 0x1D4AC, 0x1D4A9 },
104 { 0x1D4AE, 0x1D4B5, 0x1D4AE },
105 { 0x1D4D0, 0x1D4E9, 0x1D4D0 },
106 { 0x1D504, 0x1D505, 0x1D504 },
107 { 0x1D507, 0x1D50A, 0x1D507 },
108 { 0x1D50D, 0x1D514, 0x1D50D },
109 { 0x1D516, 0x1D51C, 0x1D516 },
110 { 0x1D538, 0x1D539, 0x1D538 },
111 { 0x1D53B, 0x1D53E, 0x1D53B },
112 { 0x1D540, 0x1D544, 0x1D540 },
113 { 0x1D54A, 0x1D550, 0x1D54A },
114 { 0x1D56C, 0x1D585, 0x1D56C },
115 { 0x1D5A0, 0x1D5B9, 0x1D5A0 },
116 { 0x1D5D4, 0x1D5ED, 0x1D5D4 },
117 { 0x1D608, 0x1D621, 0x1D608 },
118 { 0x1D63C, 0x1D655, 0x1D63C },
119 { 0x1D670, 0x1D689, 0x1D670 },
120 { 0x1D6A8, 0x1D6C0, 0x1D6A8 },
121 { 0x1D6E2, 0x1D6FA, 0x1D6E2 },
122 { 0x1D71C, 0x1D734, 0x1D71C },
123 { 0x1D756, 0x1D76E, 0x1D756 },
124 { 0x1D790, 0x1D7A8, 0x1D790 },
125 { 0x1E900, 0x1E921, 0x1E922 },
126 };
127
128 static const Rune upper1[][2] = {
129 { 0x0130, 0x0069 },
130 { 0x0178, 0x00FF },
131 { 0x0181, 0x0253 },
132 { 0x0186, 0x0254 },
133 { 0x0187, 0x0188 },
134 { 0x018B, 0x018C },
135 { 0x018E, 0x01DD },
136 { 0x018F, 0x0259 },
137 { 0x0190, 0x025B },
138 { 0x0191, 0x0192 },
139 { 0x0193, 0x0260 },
140 { 0x0194, 0x0263 },
141 { 0x0196, 0x0269 },
142 { 0x0197, 0x0268 },
143 { 0x0198, 0x0199 },
144 { 0x019C, 0x026F },
145 { 0x019D, 0x0272 },
146 { 0x019F, 0x0275 },
147 { 0x01A6, 0x0280 },
148 { 0x01A7, 0x01A8 },
149 { 0x01A9, 0x0283 },
150 { 0x01AC, 0x01AD },
151 { 0x01AE, 0x0288 },
152 { 0x01AF, 0x01B0 },
153 { 0x01B7, 0x0292 },
154 { 0x01B8, 0x01B9 },
155 { 0x01BC, 0x01BD },
156 { 0x01C4, 0x01C6 },
157 { 0x01C7, 0x01C9 },
158 { 0x01CA, 0x01CC },
159 { 0x01F1, 0x01F3 },
160 { 0x01F4, 0x01F5 },
161 { 0x01F6, 0x0195 },
162 { 0x01F7, 0x01BF },
163 { 0x0220, 0x019E },
164 { 0x023A, 0x2C65 },
165 { 0x023B, 0x023C },
166 { 0x023D, 0x019A },
167 { 0x023E, 0x2C66 },
168 { 0x0241, 0x0242 },
169 { 0x0243, 0x0180 },
170 { 0x0244, 0x0289 },
171 { 0x0245, 0x028C },
172 { 0x0376, 0x0377 },
173 { 0x037F, 0x03F3 },
174 { 0x0386, 0x03AC },
175 { 0x038C, 0x03CC },
176 { 0x03CF, 0x03D7 },
177 { 0x03F4, 0x03B8 },
178 { 0x03F7, 0x03F8 },
179 { 0x03F9, 0x03F2 },
180 { 0x03FA, 0x03FB },
181 { 0x04C0, 0x04CF },
182 { 0x10C7, 0x2D27 },
183 { 0x10CD, 0x2D2D },
184 { 0x1E9E, 0x00DF },
185 { 0x1F59, 0x1F51 },
186 { 0x1F5B, 0x1F53 },
187 { 0x1F5D, 0x1F55 },
188 { 0x1F5F, 0x1F57 },
189 { 0x1FEC, 0x1FE5 },
190 { 0x2102, 0x2102 },
191 { 0x2107, 0x2107 },
192 { 0x2115, 0x2115 },
193 { 0x2124, 0x2124 },
194 { 0x2126, 0x03C9 },
195 { 0x2128, 0x2128 },
196 { 0x212A, 0x006B },
197 { 0x212B, 0x00E5 },
198 { 0x2132, 0x214E },
199 { 0x2133, 0x2133 },
200 { 0x2145, 0x2145 },
201 { 0x2183, 0x2184 },
202 { 0x2C60, 0x2C61 },
203 { 0x2C62, 0x026B },
204 { 0x2C63, 0x1D7D },
205 { 0x2C64, 0x027D },
206 { 0x2C6D, 0x0251 },
207 { 0x2C6E, 0x0271 },
208 { 0x2C6F, 0x0250 },
209 { 0x2C70, 0x0252 },
210 { 0x2C72, 0x2C73 },
211 { 0x2C75, 0x2C76 },
212 { 0x2CF2, 0x2CF3 },
213 { 0xA77D, 0x1D79 },
214 { 0xA78B, 0xA78C },
215 { 0xA78D, 0x0265 },
216 { 0xA7AA, 0x0266 },
217 { 0xA7AB, 0x025C },
218 { 0xA7AC, 0x0261 },
219 { 0xA7AD, 0x026C },
220 { 0xA7AE, 0x026A },
221 { 0xA7B0, 0x029E },
222 { 0xA7B1, 0x0287 },
223 { 0xA7B2, 0x029D },
224 { 0xA7B3, 0xAB53 },
225 { 0xA7C4, 0xA794 },
226 { 0xA7C5, 0x0282 },
227 { 0xA7C6, 0x1D8E },
228 { 0xA7D0, 0xA7D1 },
229 { 0xA7F5, 0xA7F6 },
230 { 0x1D49C, 0x1D49C },
231 { 0x1D4A2, 0x1D4A2 },
232 { 0x1D546, 0x1D546 },
233 { 0x1D7CA, 0x1D7CA },
234 };
235
236 int
237 isupperrune(Rune r)
238 {
239 const Rune *match;
240
241 if((match = bsearch(&r, upper3, nelem(upper3), sizeof *upper3, &…
242 return !((r - match[0]) % 2);
243 if(bsearch(&r, upper2, nelem(upper2), sizeof *upper2, &rune2cmp))
244 return 1;
245 if(bsearch(&r, upper1, nelem(upper1), sizeof *upper1, &rune1cmp))
246 return 1;
247 return 0;
248 }
249
250 int
251 tolowerrune(Rune r)
252 {
253 Rune *match;
254
255 match = bsearch(&r, upper3, nelem(upper3), sizeof *upper3, &rune…
256 if (match)
257 return ((r - match[0]) % 2) ? r : r + 1;
258 match = bsearch(&r, upper2, nelem(upper2), sizeof *upper2, &rune…
259 if (match)
260 return match[2] + (r - match[0]);
261 match = bsearch(&r, upper1, nelem(upper1), sizeof *upper1, &rune…
262 if (match)
263 return match[1];
264 return r;
265 }
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.