keyboard/altgr/ipa: preformatted (double) combining diacritics
authorMischa POSLAWSKY <perl@shiar.org>
Thu, 25 Jan 2024 19:02:57 +0000 (20:02 +0100)
committerMischa POSLAWSKY <perl@shiar.org>
Mon, 29 Jan 2024 17:17:48 +0000 (18:17 +0100)
Build missing string representations mostly by including common pairs
in unicode-table, with preset exceptions for infix characters such as
U+0361 COMBINING DOUBLE INVERTED BREVE.

tools/mkcharinfo
unicode-table.inc.pl

index 61f674ff34974ab80ceaa77940340f33824f564b..ace9dbe12b01a9c9e3d93006260e9757ec650045 100755 (executable)
@@ -18,6 +18,9 @@ my %info = (
        "\x{200B}" => {string => '␣'}, # nbsp: ~ in TeX
        "\x{200C}" => {string => '|'}, # ISO-9995-7-081 lookalike (alt: ∣ ⊺ ⟙)
        "\x{200D}" => {string => '⁀'}, # join (alt: ∤ |ͯ ⨝)
+       (map {( $_ => {string => chr(9676).$_.chr(9676)} )} map {chr} # combining double
+               0x35C .. 0x362, 0x1DCD, 0x1DFC,
+       ),
 );
 $info{chr $_} //= {} for 32 .. 126;
 
index 4d8a9a8227c922fd4687a0c6c90cddd206f92078..d1875ef12e4a92ca0848e09b8c8339aee65aa12d 100644 (file)
@@ -193,8 +193,8 @@ ipa => {
                .>Implosive                 ɓ  ɗ̪  >  >  ɗ -ᶑ  ʄ  ɠ  ʛ  =  =  =
                .>Articulation              ʷ  ᶹ   ̪   ͇  -  ˞  ʲ  ˠ   ̴  >  ˤ  ʰ
        }], #TODO: > Labial  > > > Coronal  > Dorsal  > > Laryngeal
-       consco => [qw{
-               co:coarticulated .>sç ɕ .>zʝ ʑ .>ʃx ɧ .>jʷ ɥ .>lˠ ɫ .>hw̥ ʍ .>ɰʷ w
+       consco => [chr(865), qw{
+               co:coarticulated .>sç ɕ .>zʝ ʑ .>ʃx ɧ .>jʷ ɥ .>lˠ ɫ .>hw̥ ʍ .>ɰʷ w
        }],
        vowels => [(
                '-',
@@ -230,6 +230,22 @@ ipa => {
                . ̆ ˑ ː
                . ‿ | ‖
        }],
+       diacritics => [
+               '.' => (map chr, 809, 781, 815, 785), # syllabic
+               '.' => (map chr, '>', 'ʰ', '>', 794), # aspirated
+               '.' => (map chr, 771, 'ⁿ', 734, 'ˡ'), # nasal/rhotic/lateral
+               '.' => (map chr, '>', 812, 805, 778), # voiced
+               '.' => (map chr, '>', 804, '>', 816), # breathy
+               '.' => (map chr, 810, 838, '>', 828), # dental
+               '.' => (map chr, '>', 826, '>', 827), # apical
+               '.' => (map chr, 799,6856, 800, 772), # advanced
+               '.' => (map chr, '>', 776, 829,7498), # centralized
+               '.' => (map chr, 797, 724, 798, 725), # raised
+               '.' => (map chr, 825, 855, 796, 849), # rounding
+               '.' => (map chr, '>', 'ʷ', '>', 'ʲ'),
+               '.' => (map chr, 'ˠ', 'ˤ', '>', 820), # velar/pharyngeal
+               '.' => (map chr, 792, '꭪', 793, '꭫'), # tounge root
+       ],
 },
 
 japanese => {