Files
kitty/kitty/rowcolumn-diacritics.c
Sergei Grechanik d63eeada73 Image placement using Unicode placeholders
This commit introduces the Unicode placeholder image placement method.
In particular:
- Virtual placements can be created by passing `U=1` in a put command.
- Images with virtual placements can be displayed using the placeholder
  character `U+10EEEE` with diacritics indicating rows and columns.
- The image ID is indicated by the foreground color of the placeholder.
  Additionally, the most significant byte of the ID can be specified via
  the third diacritic.
- Underline color can be optionally used to specify the placement ID.
- A bug was fixed, which caused incomplete image removal when it was
  overwritten by another image with the same ID.
2023-02-21 18:23:16 -08:00

188 lines
4.8 KiB
C
Generated

// Unicode data, built from the Unicode Standard 15.0.0
// Code generated by gen-wcwidth.py, DO NOT EDIT.
#include "data-types.h"
START_ALLOW_CASE_RANGE
#include "unicode-data.h"
int diacritic_to_num(char_type code) {
switch (code) {
case 0x305 ... 0x306:
return code - 0x305 + 1;
case 0x30d ... 0x30f:
return code - 0x30d + 2;
case 0x310 ... 0x311:
return code - 0x310 + 4;
case 0x312 ... 0x313:
return code - 0x312 + 5;
case 0x33d ... 0x340:
return code - 0x33d + 6;
case 0x346 ... 0x347:
return code - 0x346 + 9;
case 0x34a ... 0x34d:
return code - 0x34a + 10;
case 0x350 ... 0x353:
return code - 0x350 + 13;
case 0x357 ... 0x358:
return code - 0x357 + 16;
case 0x35b ... 0x35c:
return code - 0x35b + 17;
case 0x363 ... 0x370:
return code - 0x363 + 18;
case 0x483 ... 0x488:
return code - 0x483 + 31;
case 0x592 ... 0x596:
return code - 0x592 + 36;
case 0x597 ... 0x59a:
return code - 0x597 + 40;
case 0x59c ... 0x5a2:
return code - 0x59c + 43;
case 0x5a8 ... 0x5aa:
return code - 0x5a8 + 49;
case 0x5ab ... 0x5ad:
return code - 0x5ab + 51;
case 0x5af ... 0x5b0:
return code - 0x5af + 53;
case 0x5c4 ... 0x5c5:
return code - 0x5c4 + 54;
case 0x610 ... 0x618:
return code - 0x610 + 55;
case 0x657 ... 0x65c:
return code - 0x657 + 63;
case 0x65d ... 0x65f:
return code - 0x65d + 68;
case 0x6d6 ... 0x6dd:
return code - 0x6d6 + 70;
case 0x6df ... 0x6e3:
return code - 0x6df + 77;
case 0x6e4 ... 0x6e5:
return code - 0x6e4 + 81;
case 0x6e7 ... 0x6e9:
return code - 0x6e7 + 82;
case 0x6eb ... 0x6ed:
return code - 0x6eb + 84;
case 0x730 ... 0x731:
return code - 0x730 + 86;
case 0x732 ... 0x734:
return code - 0x732 + 87;
case 0x735 ... 0x737:
return code - 0x735 + 89;
case 0x73a ... 0x73b:
return code - 0x73a + 91;
case 0x73d ... 0x73e:
return code - 0x73d + 92;
case 0x73f ... 0x742:
return code - 0x73f + 93;
case 0x743 ... 0x744:
return code - 0x743 + 96;
case 0x745 ... 0x746:
return code - 0x745 + 97;
case 0x747 ... 0x748:
return code - 0x747 + 98;
case 0x749 ... 0x74b:
return code - 0x749 + 99;
case 0x7eb ... 0x7f2:
return code - 0x7eb + 101;
case 0x7f3 ... 0x7f4:
return code - 0x7f3 + 108;
case 0x816 ... 0x81a:
return code - 0x816 + 109;
case 0x81b ... 0x824:
return code - 0x81b + 113;
case 0x825 ... 0x828:
return code - 0x825 + 122;
case 0x829 ... 0x82e:
return code - 0x829 + 125;
case 0x951 ... 0x952:
return code - 0x951 + 130;
case 0x953 ... 0x955:
return code - 0x953 + 131;
case 0xf82 ... 0xf84:
return code - 0xf82 + 133;
case 0xf86 ... 0xf88:
return code - 0xf86 + 135;
case 0x135d ... 0x1360:
return code - 0x135d + 137;
case 0x17dd ... 0x17de:
return code - 0x17dd + 140;
case 0x193a ... 0x193b:
return code - 0x193a + 141;
case 0x1a17 ... 0x1a18:
return code - 0x1a17 + 142;
case 0x1a75 ... 0x1a7d:
return code - 0x1a75 + 143;
case 0x1b6b ... 0x1b6c:
return code - 0x1b6b + 151;
case 0x1b6d ... 0x1b74:
return code - 0x1b6d + 152;
case 0x1cd0 ... 0x1cd3:
return code - 0x1cd0 + 159;
case 0x1cda ... 0x1cdc:
return code - 0x1cda + 162;
case 0x1ce0 ... 0x1ce1:
return code - 0x1ce0 + 164;
case 0x1dc0 ... 0x1dc2:
return code - 0x1dc0 + 165;
case 0x1dc3 ... 0x1dca:
return code - 0x1dc3 + 167;
case 0x1dcb ... 0x1dcd:
return code - 0x1dcb + 174;
case 0x1dd1 ... 0x1de7:
return code - 0x1dd1 + 176;
case 0x1dfe ... 0x1dff:
return code - 0x1dfe + 198;
case 0x20d0 ... 0x20d2:
return code - 0x20d0 + 199;
case 0x20d4 ... 0x20d8:
return code - 0x20d4 + 201;
case 0x20db ... 0x20dd:
return code - 0x20db + 205;
case 0x20e1 ... 0x20e2:
return code - 0x20e1 + 207;
case 0x20e7 ... 0x20e8:
return code - 0x20e7 + 208;
case 0x20e9 ... 0x20ea:
return code - 0x20e9 + 209;
case 0x20f0 ... 0x20f1:
return code - 0x20f0 + 210;
case 0x2cef ... 0x2cf2:
return code - 0x2cef + 211;
case 0x2de0 ... 0x2e00:
return code - 0x2de0 + 214;
case 0xa66f ... 0xa670:
return code - 0xa66f + 246;
case 0xa67c ... 0xa67e:
return code - 0xa67c + 247;
case 0xa6f0 ... 0xa6f2:
return code - 0xa6f0 + 249;
case 0xa8e0 ... 0xa8f2:
return code - 0xa8e0 + 251;
case 0xaab0 ... 0xaab1:
return code - 0xaab0 + 269;
case 0xaab2 ... 0xaab4:
return code - 0xaab2 + 270;
case 0xaab7 ... 0xaab9:
return code - 0xaab7 + 272;
case 0xaabe ... 0xaac0:
return code - 0xaabe + 274;
case 0xaac1 ... 0xaac2:
return code - 0xaac1 + 276;
case 0xfe20 ... 0xfe27:
return code - 0xfe20 + 277;
case 0x10a0f ... 0x10a10:
return code - 0x10a0f + 284;
case 0x10a38 ... 0x10a39:
return code - 0x10a38 + 285;
case 0x1d185 ... 0x1d18a:
return code - 0x1d185 + 286;
case 0x1d1aa ... 0x1d1ae:
return code - 0x1d1aa + 291;
case 0x1d242 ... 0x1d245:
return code - 0x1d242 + 295;
}
return 0;
}
END_ALLOW_CASE_RANGE