MCPcopy Create free account
hub / github.com/comaps/comaps / NormalizeInplace

Function NormalizeInplace

libs/base/normalize_unicode.cpp:192–4866  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

190}
191
192void NormalizeInplace(UniString & s)
193{
194 size_t const size = s.size();
195
196 UniString r;
197 r.reserve(size);
198 for (size_t i = 0; i < size; ++i)
199 {
200 UniChar const c = s[i];
201 // ASCII optimization
202 if (c < 0xa0)
203 r.push_back(c);
204 else
205 {
206 switch (c & 0xffff0000)
207 {
208 case 0x0000:
209 {
210 switch (static_cast<uint16_t>(c & 0x0000ff00))
211 {
212 case 0x0:
213 {
214 switch (static_cast<uint8_t>(c & 0xff))
215 {
216 case 0xa0: w(r, 3, 1); break;
217 case 0xa8: w(r, 3, 1); break;
218 case 0xaa: w(r, 40, 1); break;
219 case 0xaf: w(r, 3, 1); break;
220 case 0xb2: w(r, 44, 1); break;
221 case 0xb3: w(r, 184, 1); break;
222 case 0xb4: w(r, 3, 1); break;
223 case 0xb5: w(r, 1244, 1); break;
224 case 0xb8: w(r, 3, 1); break;
225 case 0xb9: w(r, 158, 1); break;
226 case 0xba: w(r, 480, 1); break;
227 case 0xbc: w(r, 1085, 3); break;
228 case 0xbd: w(r, 1082, 3); break;
229 case 0xbe: w(r, 1079, 3); break;
230 case 0xc0: w(r, 491, 1); break;
231 case 0xc1: w(r, 491, 1); break;
232 case 0xc2: w(r, 491, 1); break;
233 case 0xc3: w(r, 491, 1); break;
234 case 0xc7: w(r, 358, 1); break;
235 case 0xc8: w(r, 921, 1); break;
236 case 0xc9: w(r, 921, 1); break;
237 case 0xca: w(r, 921, 1); break;
238 case 0xcb: w(r, 921, 1); break;
239 case 0xcc: w(r, 163, 1); break;
240 case 0xcd: w(r, 163, 1); break;
241 case 0xce: w(r, 163, 1); break;
242 case 0xcf: w(r, 163, 1); break;
243 case 0xd1: w(r, 1122, 1); break;
244 case 0xd2: w(r, 1125, 1); break;
245 case 0xd3: w(r, 1125, 1); break;
246 case 0xd4: w(r, 1125, 1); break;
247 case 0xd5: w(r, 1125, 1); break;
248 case 0xd9: w(r, 1143, 1); break;
249 case 0xda: w(r, 1143, 1); break;

Callers 4

NormalizeFunction · 0.85
CountNormLowerSymbolsFunction · 0.85
UNIT_TESTFunction · 0.85

Calls 5

wFunction · 0.70
sizeMethod · 0.45
reserveMethod · 0.45
push_backMethod · 0.45
swapMethod · 0.45

Tested by 1

UNIT_TESTFunction · 0.68