1 //===---------- Support/UnicodeCaseFold.cpp -------------------------------===// 2 // 3 // This file was generated by utils/unicode-case-fold.py from the Unicode 4 // case folding database at 5 // http://www.unicode.org/Public/15.0.0/ucd/CaseFolding.txt 6 // 7 // To regenerate this file, run: 8 // utils/unicode-case-fold.py \ 9 // "http://www.unicode.org/Public/15.0.0/ucd/CaseFolding.txt" \ 10 // > lib/Support/UnicodeCaseFold.cpp 11 // 12 //===----------------------------------------------------------------------===// 13 14 #include "llvm/Support/Unicode.h" 15 16 int llvm::sys::unicode::foldCharSimple(int C) { 17 if (C < 0x0041) 18 return C; 19 // 26 characters 20 if (C <= 0x005a) 21 return C + 32; 22 // MICRO SIGN 23 if (C == 0x00b5) 24 return 0x03bc; 25 if (C < 0x00c0) 26 return C; 27 // 23 characters 28 if (C <= 0x00d6) 29 return C + 32; 30 if (C < 0x00d8) 31 return C; 32 // 7 characters 33 if (C <= 0x00de) 34 return C + 32; 35 if (C < 0x0100) 36 return C; 37 // 24 characters 38 if (C <= 0x012e) 39 return C | 1; 40 if (C < 0x0132) 41 return C; 42 // 3 characters 43 if (C <= 0x0136) 44 return C | 1; 45 if (C < 0x0139) 46 return C; 47 // 8 characters 48 if (C <= 0x0147 && C % 2 == 1) 49 return C + 1; 50 if (C < 0x014a) 51 return C; 52 // 23 characters 53 if (C <= 0x0176) 54 return C | 1; 55 // LATIN CAPITAL LETTER Y WITH DIAERESIS 56 if (C == 0x0178) 57 return 0x00ff; 58 if (C < 0x0179) 59 return C; 60 // 3 characters 61 if (C <= 0x017d && C % 2 == 1) 62 return C + 1; 63 // LATIN SMALL LETTER LONG S 64 if (C == 0x017f) 65 return 0x0073; 66 // LATIN CAPITAL LETTER B WITH HOOK 67 if (C == 0x0181) 68 return 0x0253; 69 if (C < 0x0182) 70 return C; 71 // 2 characters 72 if (C <= 0x0184) 73 return C | 1; 74 // LATIN CAPITAL LETTER OPEN O 75 if (C == 0x0186) 76 return 0x0254; 77 // LATIN CAPITAL LETTER C WITH HOOK 78 if (C == 0x0187) 79 return 0x0188; 80 if (C < 0x0189) 81 return C; 82 // 2 characters 83 if (C <= 0x018a) 84 return C + 205; 85 // LATIN CAPITAL LETTER D WITH TOPBAR 86 if (C == 0x018b) 87 return 0x018c; 88 // LATIN CAPITAL LETTER REVERSED E 89 if (C == 0x018e) 90 return 0x01dd; 91 // LATIN CAPITAL LETTER SCHWA 92 if (C == 0x018f) 93 return 0x0259; 94 // LATIN CAPITAL LETTER OPEN E 95 if (C == 0x0190) 96 return 0x025b; 97 // LATIN CAPITAL LETTER F WITH HOOK 98 if (C == 0x0191) 99 return 0x0192; 100 // LATIN CAPITAL LETTER G WITH HOOK 101 if (C == 0x0193) 102 return 0x0260; 103 // LATIN CAPITAL LETTER GAMMA 104 if (C == 0x0194) 105 return 0x0263; 106 // LATIN CAPITAL LETTER IOTA 107 if (C == 0x0196) 108 return 0x0269; 109 // LATIN CAPITAL LETTER I WITH STROKE 110 if (C == 0x0197) 111 return 0x0268; 112 // LATIN CAPITAL LETTER K WITH HOOK 113 if (C == 0x0198) 114 return 0x0199; 115 // LATIN CAPITAL LETTER TURNED M 116 if (C == 0x019c) 117 return 0x026f; 118 // LATIN CAPITAL LETTER N WITH LEFT HOOK 119 if (C == 0x019d) 120 return 0x0272; 121 // LATIN CAPITAL LETTER O WITH MIDDLE TILDE 122 if (C == 0x019f) 123 return 0x0275; 124 if (C < 0x01a0) 125 return C; 126 // 3 characters 127 if (C <= 0x01a4) 128 return C | 1; 129 // LATIN LETTER YR 130 if (C == 0x01a6) 131 return 0x0280; 132 // LATIN CAPITAL LETTER TONE TWO 133 if (C == 0x01a7) 134 return 0x01a8; 135 // LATIN CAPITAL LETTER ESH 136 if (C == 0x01a9) 137 return 0x0283; 138 // LATIN CAPITAL LETTER T WITH HOOK 139 if (C == 0x01ac) 140 return 0x01ad; 141 // LATIN CAPITAL LETTER T WITH RETROFLEX HOOK 142 if (C == 0x01ae) 143 return 0x0288; 144 // LATIN CAPITAL LETTER U WITH HORN 145 if (C == 0x01af) 146 return 0x01b0; 147 if (C < 0x01b1) 148 return C; 149 // 2 characters 150 if (C <= 0x01b2) 151 return C + 217; 152 if (C < 0x01b3) 153 return C; 154 // 2 characters 155 if (C <= 0x01b5 && C % 2 == 1) 156 return C + 1; 157 // LATIN CAPITAL LETTER EZH 158 if (C == 0x01b7) 159 return 0x0292; 160 if (C < 0x01b8) 161 return C; 162 // 2 characters 163 if (C <= 0x01bc && C % 4 == 0) 164 return C + 1; 165 // LATIN CAPITAL LETTER DZ WITH CARON 166 if (C == 0x01c4) 167 return 0x01c6; 168 // LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON 169 if (C == 0x01c5) 170 return 0x01c6; 171 // LATIN CAPITAL LETTER LJ 172 if (C == 0x01c7) 173 return 0x01c9; 174 // LATIN CAPITAL LETTER L WITH SMALL LETTER J 175 if (C == 0x01c8) 176 return 0x01c9; 177 // LATIN CAPITAL LETTER NJ 178 if (C == 0x01ca) 179 return 0x01cc; 180 if (C < 0x01cb) 181 return C; 182 // 9 characters 183 if (C <= 0x01db && C % 2 == 1) 184 return C + 1; 185 if (C < 0x01de) 186 return C; 187 // 9 characters 188 if (C <= 0x01ee) 189 return C | 1; 190 // LATIN CAPITAL LETTER DZ 191 if (C == 0x01f1) 192 return 0x01f3; 193 if (C < 0x01f2) 194 return C; 195 // 2 characters 196 if (C <= 0x01f4) 197 return C | 1; 198 // LATIN CAPITAL LETTER HWAIR 199 if (C == 0x01f6) 200 return 0x0195; 201 // LATIN CAPITAL LETTER WYNN 202 if (C == 0x01f7) 203 return 0x01bf; 204 if (C < 0x01f8) 205 return C; 206 // 20 characters 207 if (C <= 0x021e) 208 return C | 1; 209 // LATIN CAPITAL LETTER N WITH LONG RIGHT LEG 210 if (C == 0x0220) 211 return 0x019e; 212 if (C < 0x0222) 213 return C; 214 // 9 characters 215 if (C <= 0x0232) 216 return C | 1; 217 // LATIN CAPITAL LETTER A WITH STROKE 218 if (C == 0x023a) 219 return 0x2c65; 220 // LATIN CAPITAL LETTER C WITH STROKE 221 if (C == 0x023b) 222 return 0x023c; 223 // LATIN CAPITAL LETTER L WITH BAR 224 if (C == 0x023d) 225 return 0x019a; 226 // LATIN CAPITAL LETTER T WITH DIAGONAL STROKE 227 if (C == 0x023e) 228 return 0x2c66; 229 // LATIN CAPITAL LETTER GLOTTAL STOP 230 if (C == 0x0241) 231 return 0x0242; 232 // LATIN CAPITAL LETTER B WITH STROKE 233 if (C == 0x0243) 234 return 0x0180; 235 // LATIN CAPITAL LETTER U BAR 236 if (C == 0x0244) 237 return 0x0289; 238 // LATIN CAPITAL LETTER TURNED V 239 if (C == 0x0245) 240 return 0x028c; 241 if (C < 0x0246) 242 return C; 243 // 5 characters 244 if (C <= 0x024e) 245 return C | 1; 246 // COMBINING GREEK YPOGEGRAMMENI 247 if (C == 0x0345) 248 return 0x03b9; 249 if (C < 0x0370) 250 return C; 251 // 2 characters 252 if (C <= 0x0372) 253 return C | 1; 254 // GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA 255 if (C == 0x0376) 256 return 0x0377; 257 // GREEK CAPITAL LETTER YOT 258 if (C == 0x037f) 259 return 0x03f3; 260 // GREEK CAPITAL LETTER ALPHA WITH TONOS 261 if (C == 0x0386) 262 return 0x03ac; 263 if (C < 0x0388) 264 return C; 265 // 3 characters 266 if (C <= 0x038a) 267 return C + 37; 268 // GREEK CAPITAL LETTER OMICRON WITH TONOS 269 if (C == 0x038c) 270 return 0x03cc; 271 if (C < 0x038e) 272 return C; 273 // 2 characters 274 if (C <= 0x038f) 275 return C + 63; 276 if (C < 0x0391) 277 return C; 278 // 17 characters 279 if (C <= 0x03a1) 280 return C + 32; 281 if (C < 0x03a3) 282 return C; 283 // 9 characters 284 if (C <= 0x03ab) 285 return C + 32; 286 // GREEK SMALL LETTER FINAL SIGMA 287 if (C == 0x03c2) 288 return 0x03c3; 289 // GREEK CAPITAL KAI SYMBOL 290 if (C == 0x03cf) 291 return 0x03d7; 292 // GREEK BETA SYMBOL 293 if (C == 0x03d0) 294 return 0x03b2; 295 // GREEK THETA SYMBOL 296 if (C == 0x03d1) 297 return 0x03b8; 298 // GREEK PHI SYMBOL 299 if (C == 0x03d5) 300 return 0x03c6; 301 // GREEK PI SYMBOL 302 if (C == 0x03d6) 303 return 0x03c0; 304 if (C < 0x03d8) 305 return C; 306 // 12 characters 307 if (C <= 0x03ee) 308 return C | 1; 309 // GREEK KAPPA SYMBOL 310 if (C == 0x03f0) 311 return 0x03ba; 312 // GREEK RHO SYMBOL 313 if (C == 0x03f1) 314 return 0x03c1; 315 // GREEK CAPITAL THETA SYMBOL 316 if (C == 0x03f4) 317 return 0x03b8; 318 // GREEK LUNATE EPSILON SYMBOL 319 if (C == 0x03f5) 320 return 0x03b5; 321 // GREEK CAPITAL LETTER SHO 322 if (C == 0x03f7) 323 return 0x03f8; 324 // GREEK CAPITAL LUNATE SIGMA SYMBOL 325 if (C == 0x03f9) 326 return 0x03f2; 327 // GREEK CAPITAL LETTER SAN 328 if (C == 0x03fa) 329 return 0x03fb; 330 if (C < 0x03fd) 331 return C; 332 // 3 characters 333 if (C <= 0x03ff) 334 return C + -130; 335 if (C < 0x0400) 336 return C; 337 // 16 characters 338 if (C <= 0x040f) 339 return C + 80; 340 if (C < 0x0410) 341 return C; 342 // 32 characters 343 if (C <= 0x042f) 344 return C + 32; 345 if (C < 0x0460) 346 return C; 347 // 17 characters 348 if (C <= 0x0480) 349 return C | 1; 350 if (C < 0x048a) 351 return C; 352 // 27 characters 353 if (C <= 0x04be) 354 return C | 1; 355 // CYRILLIC LETTER PALOCHKA 356 if (C == 0x04c0) 357 return 0x04cf; 358 if (C < 0x04c1) 359 return C; 360 // 7 characters 361 if (C <= 0x04cd && C % 2 == 1) 362 return C + 1; 363 if (C < 0x04d0) 364 return C; 365 // 48 characters 366 if (C <= 0x052e) 367 return C | 1; 368 if (C < 0x0531) 369 return C; 370 // 38 characters 371 if (C <= 0x0556) 372 return C + 48; 373 if (C < 0x10a0) 374 return C; 375 // 38 characters 376 if (C <= 0x10c5) 377 return C + 7264; 378 if (C < 0x10c7) 379 return C; 380 // 2 characters 381 if (C <= 0x10cd && C % 6 == 5) 382 return C + 7264; 383 if (C < 0x13f8) 384 return C; 385 // 6 characters 386 if (C <= 0x13fd) 387 return C + -8; 388 // CYRILLIC SMALL LETTER ROUNDED VE 389 if (C == 0x1c80) 390 return 0x0432; 391 // CYRILLIC SMALL LETTER LONG-LEGGED DE 392 if (C == 0x1c81) 393 return 0x0434; 394 // CYRILLIC SMALL LETTER NARROW O 395 if (C == 0x1c82) 396 return 0x043e; 397 if (C < 0x1c83) 398 return C; 399 // 2 characters 400 if (C <= 0x1c84) 401 return C + -6210; 402 // CYRILLIC SMALL LETTER THREE-LEGGED TE 403 if (C == 0x1c85) 404 return 0x0442; 405 // CYRILLIC SMALL LETTER TALL HARD SIGN 406 if (C == 0x1c86) 407 return 0x044a; 408 // CYRILLIC SMALL LETTER TALL YAT 409 if (C == 0x1c87) 410 return 0x0463; 411 // CYRILLIC SMALL LETTER UNBLENDED UK 412 if (C == 0x1c88) 413 return 0xa64b; 414 if (C < 0x1c90) 415 return C; 416 // 43 characters 417 if (C <= 0x1cba) 418 return C + -3008; 419 if (C < 0x1cbd) 420 return C; 421 // 3 characters 422 if (C <= 0x1cbf) 423 return C + -3008; 424 if (C < 0x1e00) 425 return C; 426 // 75 characters 427 if (C <= 0x1e94) 428 return C | 1; 429 // LATIN SMALL LETTER LONG S WITH DOT ABOVE 430 if (C == 0x1e9b) 431 return 0x1e61; 432 // LATIN CAPITAL LETTER SHARP S 433 if (C == 0x1e9e) 434 return 0x00df; 435 if (C < 0x1ea0) 436 return C; 437 // 48 characters 438 if (C <= 0x1efe) 439 return C | 1; 440 if (C < 0x1f08) 441 return C; 442 // 8 characters 443 if (C <= 0x1f0f) 444 return C + -8; 445 if (C < 0x1f18) 446 return C; 447 // 6 characters 448 if (C <= 0x1f1d) 449 return C + -8; 450 if (C < 0x1f28) 451 return C; 452 // 8 characters 453 if (C <= 0x1f2f) 454 return C + -8; 455 if (C < 0x1f38) 456 return C; 457 // 8 characters 458 if (C <= 0x1f3f) 459 return C + -8; 460 if (C < 0x1f48) 461 return C; 462 // 6 characters 463 if (C <= 0x1f4d) 464 return C + -8; 465 if (C < 0x1f59) 466 return C; 467 // 4 characters 468 if (C <= 0x1f5f && C % 2 == 1) 469 return C + -8; 470 if (C < 0x1f68) 471 return C; 472 // 8 characters 473 if (C <= 0x1f6f) 474 return C + -8; 475 if (C < 0x1f88) 476 return C; 477 // 8 characters 478 if (C <= 0x1f8f) 479 return C + -8; 480 if (C < 0x1f98) 481 return C; 482 // 8 characters 483 if (C <= 0x1f9f) 484 return C + -8; 485 if (C < 0x1fa8) 486 return C; 487 // 8 characters 488 if (C <= 0x1faf) 489 return C + -8; 490 if (C < 0x1fb8) 491 return C; 492 // 2 characters 493 if (C <= 0x1fb9) 494 return C + -8; 495 if (C < 0x1fba) 496 return C; 497 // 2 characters 498 if (C <= 0x1fbb) 499 return C + -74; 500 // GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI 501 if (C == 0x1fbc) 502 return 0x1fb3; 503 // GREEK PROSGEGRAMMENI 504 if (C == 0x1fbe) 505 return 0x03b9; 506 if (C < 0x1fc8) 507 return C; 508 // 4 characters 509 if (C <= 0x1fcb) 510 return C + -86; 511 // GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI 512 if (C == 0x1fcc) 513 return 0x1fc3; 514 if (C < 0x1fd8) 515 return C; 516 // 2 characters 517 if (C <= 0x1fd9) 518 return C + -8; 519 if (C < 0x1fda) 520 return C; 521 // 2 characters 522 if (C <= 0x1fdb) 523 return C + -100; 524 if (C < 0x1fe8) 525 return C; 526 // 2 characters 527 if (C <= 0x1fe9) 528 return C + -8; 529 if (C < 0x1fea) 530 return C; 531 // 2 characters 532 if (C <= 0x1feb) 533 return C + -112; 534 // GREEK CAPITAL LETTER RHO WITH DASIA 535 if (C == 0x1fec) 536 return 0x1fe5; 537 if (C < 0x1ff8) 538 return C; 539 // 2 characters 540 if (C <= 0x1ff9) 541 return C + -128; 542 if (C < 0x1ffa) 543 return C; 544 // 2 characters 545 if (C <= 0x1ffb) 546 return C + -126; 547 // GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI 548 if (C == 0x1ffc) 549 return 0x1ff3; 550 // OHM SIGN 551 if (C == 0x2126) 552 return 0x03c9; 553 // KELVIN SIGN 554 if (C == 0x212a) 555 return 0x006b; 556 // ANGSTROM SIGN 557 if (C == 0x212b) 558 return 0x00e5; 559 // TURNED CAPITAL F 560 if (C == 0x2132) 561 return 0x214e; 562 if (C < 0x2160) 563 return C; 564 // 16 characters 565 if (C <= 0x216f) 566 return C + 16; 567 // ROMAN NUMERAL REVERSED ONE HUNDRED 568 if (C == 0x2183) 569 return 0x2184; 570 if (C < 0x24b6) 571 return C; 572 // 26 characters 573 if (C <= 0x24cf) 574 return C + 26; 575 if (C < 0x2c00) 576 return C; 577 // 48 characters 578 if (C <= 0x2c2f) 579 return C + 48; 580 // LATIN CAPITAL LETTER L WITH DOUBLE BAR 581 if (C == 0x2c60) 582 return 0x2c61; 583 // LATIN CAPITAL LETTER L WITH MIDDLE TILDE 584 if (C == 0x2c62) 585 return 0x026b; 586 // LATIN CAPITAL LETTER P WITH STROKE 587 if (C == 0x2c63) 588 return 0x1d7d; 589 // LATIN CAPITAL LETTER R WITH TAIL 590 if (C == 0x2c64) 591 return 0x027d; 592 if (C < 0x2c67) 593 return C; 594 // 3 characters 595 if (C <= 0x2c6b && C % 2 == 1) 596 return C + 1; 597 // LATIN CAPITAL LETTER ALPHA 598 if (C == 0x2c6d) 599 return 0x0251; 600 // LATIN CAPITAL LETTER M WITH HOOK 601 if (C == 0x2c6e) 602 return 0x0271; 603 // LATIN CAPITAL LETTER TURNED A 604 if (C == 0x2c6f) 605 return 0x0250; 606 // LATIN CAPITAL LETTER TURNED ALPHA 607 if (C == 0x2c70) 608 return 0x0252; 609 if (C < 0x2c72) 610 return C; 611 // 2 characters 612 if (C <= 0x2c75 && C % 3 == 2) 613 return C + 1; 614 if (C < 0x2c7e) 615 return C; 616 // 2 characters 617 if (C <= 0x2c7f) 618 return C + -10815; 619 if (C < 0x2c80) 620 return C; 621 // 50 characters 622 if (C <= 0x2ce2) 623 return C | 1; 624 if (C < 0x2ceb) 625 return C; 626 // 2 characters 627 if (C <= 0x2ced && C % 2 == 1) 628 return C + 1; 629 if (C < 0x2cf2) 630 return C; 631 // 2 characters 632 if (C <= 0xa640 && C % 31054 == 11506) 633 return C + 1; 634 if (C < 0xa642) 635 return C; 636 // 22 characters 637 if (C <= 0xa66c) 638 return C | 1; 639 if (C < 0xa680) 640 return C; 641 // 14 characters 642 if (C <= 0xa69a) 643 return C | 1; 644 if (C < 0xa722) 645 return C; 646 // 7 characters 647 if (C <= 0xa72e) 648 return C | 1; 649 if (C < 0xa732) 650 return C; 651 // 31 characters 652 if (C <= 0xa76e) 653 return C | 1; 654 if (C < 0xa779) 655 return C; 656 // 2 characters 657 if (C <= 0xa77b && C % 2 == 1) 658 return C + 1; 659 // LATIN CAPITAL LETTER INSULAR G 660 if (C == 0xa77d) 661 return 0x1d79; 662 if (C < 0xa77e) 663 return C; 664 // 5 characters 665 if (C <= 0xa786) 666 return C | 1; 667 // LATIN CAPITAL LETTER SALTILLO 668 if (C == 0xa78b) 669 return 0xa78c; 670 // LATIN CAPITAL LETTER TURNED H 671 if (C == 0xa78d) 672 return 0x0265; 673 if (C < 0xa790) 674 return C; 675 // 2 characters 676 if (C <= 0xa792) 677 return C | 1; 678 if (C < 0xa796) 679 return C; 680 // 10 characters 681 if (C <= 0xa7a8) 682 return C | 1; 683 // LATIN CAPITAL LETTER H WITH HOOK 684 if (C == 0xa7aa) 685 return 0x0266; 686 // LATIN CAPITAL LETTER REVERSED OPEN E 687 if (C == 0xa7ab) 688 return 0x025c; 689 // LATIN CAPITAL LETTER SCRIPT G 690 if (C == 0xa7ac) 691 return 0x0261; 692 // LATIN CAPITAL LETTER L WITH BELT 693 if (C == 0xa7ad) 694 return 0x026c; 695 // LATIN CAPITAL LETTER SMALL CAPITAL I 696 if (C == 0xa7ae) 697 return 0x026a; 698 // LATIN CAPITAL LETTER TURNED K 699 if (C == 0xa7b0) 700 return 0x029e; 701 // LATIN CAPITAL LETTER TURNED T 702 if (C == 0xa7b1) 703 return 0x0287; 704 // LATIN CAPITAL LETTER J WITH CROSSED-TAIL 705 if (C == 0xa7b2) 706 return 0x029d; 707 // LATIN CAPITAL LETTER CHI 708 if (C == 0xa7b3) 709 return 0xab53; 710 if (C < 0xa7b4) 711 return C; 712 // 8 characters 713 if (C <= 0xa7c2) 714 return C | 1; 715 // LATIN CAPITAL LETTER C WITH PALATAL HOOK 716 if (C == 0xa7c4) 717 return 0xa794; 718 // LATIN CAPITAL LETTER S WITH HOOK 719 if (C == 0xa7c5) 720 return 0x0282; 721 // LATIN CAPITAL LETTER Z WITH PALATAL HOOK 722 if (C == 0xa7c6) 723 return 0x1d8e; 724 if (C < 0xa7c7) 725 return C; 726 // 2 characters 727 if (C <= 0xa7c9 && C % 2 == 1) 728 return C + 1; 729 if (C < 0xa7d0) 730 return C; 731 // 2 characters 732 if (C <= 0xa7d6 && C % 6 == 0) 733 return C + 1; 734 if (C < 0xa7d8) 735 return C; 736 // 2 characters 737 if (C <= 0xa7f5 && C % 29 == 19) 738 return C + 1; 739 if (C < 0xab70) 740 return C; 741 // 80 characters 742 if (C <= 0xabbf) 743 return C + -38864; 744 if (C < 0xff21) 745 return C; 746 // 26 characters 747 if (C <= 0xff3a) 748 return C + 32; 749 if (C < 0x10400) 750 return C; 751 // 40 characters 752 if (C <= 0x10427) 753 return C + 40; 754 if (C < 0x104b0) 755 return C; 756 // 36 characters 757 if (C <= 0x104d3) 758 return C + 40; 759 if (C < 0x10570) 760 return C; 761 // 11 characters 762 if (C <= 0x1057a) 763 return C + 39; 764 if (C < 0x1057c) 765 return C; 766 // 15 characters 767 if (C <= 0x1058a) 768 return C + 39; 769 if (C < 0x1058c) 770 return C; 771 // 7 characters 772 if (C <= 0x10592) 773 return C + 39; 774 if (C < 0x10594) 775 return C; 776 // 2 characters 777 if (C <= 0x10595) 778 return C + 39; 779 if (C < 0x10c80) 780 return C; 781 // 51 characters 782 if (C <= 0x10cb2) 783 return C + 64; 784 if (C < 0x118a0) 785 return C; 786 // 32 characters 787 if (C <= 0x118bf) 788 return C + 32; 789 if (C < 0x16e40) 790 return C; 791 // 32 characters 792 if (C <= 0x16e5f) 793 return C + 32; 794 if (C < 0x1e900) 795 return C; 796 // 34 characters 797 if (C <= 0x1e921) 798 return C + 34; 799 800 return C; 801 } 802