utf8_constexpr14_impl utf8_int32_t utf8uprcodepoint()

in src/common/utils/Utf8.h [1409:1561]


utf8_constexpr14_impl utf8_int32_t utf8uprcodepoint(utf8_int32_t cp) {
  if (((0x0061 <= cp) && (0x007a >= cp)) || ((0x00e0 <= cp) && (0x00f6 >= cp)) || ((0x00f8 <= cp) && (0x00fe >= cp)) ||
      ((0x03b1 <= cp) && (0x03c1 >= cp)) || ((0x03c3 <= cp) && (0x03cb >= cp)) || ((0x0430 <= cp) && (0x044f >= cp))) {
    cp -= 32;
  } else if ((0x0450 <= cp) && (0x045f >= cp)) {
    cp -= 80;
  } else if (((0x0100 <= cp) && (0x012f >= cp)) || ((0x0132 <= cp) && (0x0137 >= cp)) ||
             ((0x014a <= cp) && (0x0177 >= cp)) || ((0x0182 <= cp) && (0x0185 >= cp)) ||
             ((0x01a0 <= cp) && (0x01a5 >= cp)) || ((0x01de <= cp) && (0x01ef >= cp)) ||
             ((0x01f8 <= cp) && (0x021f >= cp)) || ((0x0222 <= cp) && (0x0233 >= cp)) ||
             ((0x0246 <= cp) && (0x024f >= cp)) || ((0x03d8 <= cp) && (0x03ef >= cp)) ||
             ((0x0460 <= cp) && (0x0481 >= cp)) || ((0x048a <= cp) && (0x04ff >= cp))) {
    cp &= ~0x1;
  } else if (((0x0139 <= cp) && (0x0148 >= cp)) || ((0x0179 <= cp) && (0x017e >= cp)) ||
             ((0x01af <= cp) && (0x01b0 >= cp)) || ((0x01b3 <= cp) && (0x01b6 >= cp)) ||
             ((0x01cd <= cp) && (0x01dc >= cp))) {
    cp -= 1;
    cp |= 0x1;
  } else {
    switch (cp) {
      default:
        break;
      case 0x00ff:
        cp = 0x0178;
        break;
      case 0x0180:
        cp = 0x0243;
        break;
      case 0x01dd:
        cp = 0x018e;
        break;
      case 0x019a:
        cp = 0x023d;
        break;
      case 0x019e:
        cp = 0x0220;
        break;
      case 0x0292:
        cp = 0x01b7;
        break;
      case 0x01c6:
        cp = 0x01c4;
        break;
      case 0x01c9:
        cp = 0x01c7;
        break;
      case 0x01cc:
        cp = 0x01ca;
        break;
      case 0x01f3:
        cp = 0x01f1;
        break;
      case 0x01bf:
        cp = 0x01f7;
        break;
      case 0x0188:
        cp = 0x0187;
        break;
      case 0x018c:
        cp = 0x018b;
        break;
      case 0x0192:
        cp = 0x0191;
        break;
      case 0x0199:
        cp = 0x0198;
        break;
      case 0x01a8:
        cp = 0x01a7;
        break;
      case 0x01ad:
        cp = 0x01ac;
        break;
      case 0x01b0:
        cp = 0x01af;
        break;
      case 0x01b9:
        cp = 0x01b8;
        break;
      case 0x01bd:
        cp = 0x01bc;
        break;
      case 0x01f5:
        cp = 0x01f4;
        break;
      case 0x023c:
        cp = 0x023b;
        break;
      case 0x0242:
        cp = 0x0241;
        break;
      case 0x037b:
        cp = 0x03fd;
        break;
      case 0x037c:
        cp = 0x03fe;
        break;
      case 0x037d:
        cp = 0x03ff;
        break;
      case 0x03f3:
        cp = 0x037f;
        break;
      case 0x03ac:
        cp = 0x0386;
        break;
      case 0x03ad:
        cp = 0x0388;
        break;
      case 0x03ae:
        cp = 0x0389;
        break;
      case 0x03af:
        cp = 0x038a;
        break;
      case 0x03cc:
        cp = 0x038c;
        break;
      case 0x03cd:
        cp = 0x038e;
        break;
      case 0x03ce:
        cp = 0x038f;
        break;
      case 0x0371:
        cp = 0x0370;
        break;
      case 0x0373:
        cp = 0x0372;
        break;
      case 0x0377:
        cp = 0x0376;
        break;
      case 0x03d1:
        cp = 0x0398;
        break;
      case 0x03d7:
        cp = 0x03cf;
        break;
      case 0x03f2:
        cp = 0x03f9;
        break;
      case 0x03f8:
        cp = 0x03f7;
        break;
      case 0x03fb:
        cp = 0x03fa;
        break;
    }
  }

  return cp;
}