charset: multirow range title at majority break
authorMischa POSLAWSKY <perl@shiar.org>
Wed, 5 Apr 2017 22:57:32 +0000 (00:57 +0200)
committerMischa POSLAWSKY <perl@shiar.org>
Mon, 24 Apr 2017 23:51:42 +0000 (01:51 +0200)
charset-unicode.inc.pl
charset.plp

index 38449ab2cc632260ca33b9506c503dfdd8601062..559ca88bb6894e257b77aad9444c008863fee25e 100644 (file)
@@ -8,8 +8,7 @@ use utf8;
        0x000A => [0x02, 'X L So joinl joinr', 'comn'],
        0x000C => [0x04, 'X L Latin joinl',    'latin1'],
        0x0010 => [0x08, 'X L Latin',          'latin extended-A'],
-       0x0018 => [0x08, 'X L Latin',          'latin extended-B'],
-       0x0020 => [0x05, 'X L Latin',          'latin ext-B'],
+       0x0018 => [0x0D, 'X L Latin',          'latin extended-B'],
        0x0025 => [0x06, 'X L Latin',          'IPA'],
        0x002B => [0x05, 'X Sk',               'spacing modifier'],
        0x0030 => [0x08, 'X Mn',               'diacritics'],
@@ -44,8 +43,7 @@ use utf8;
        0x0100 => [0x0A, 'X L Brahmic',        'myanmar'],
        0x010A => [0x06, 'X L Aramaic',        'georgian'],
        0x0110 => [0x10, 'X L Hangul',         'hangeul jamo'],
-       0x0120 => [0x10, 'X L African',        'ethiopic'],
-       0x0130 => [0x08, 'X L African',        'ethiopic'],
+       0x0120 => [0x18, 'X L African',        'ethiopic'],
        0x0138 => [0x02, 'X L African',        'eth+'],
        0x013A => [0x06, 'X L Syllabic',       'cherokee'],
        0x0140 => [0x28, 'X L Syllabic',       'unified canadian aboriginal syllabics'],
@@ -133,7 +131,7 @@ use utf8;
        0x0A49 => [0x04, 'X L Syllabic',       'yi radicals'],
        0x0A4D => [0x03, 'X L Latin',          'lisu'],
        0x0A50 => [0x14, 'X L Syllabic',       'vai'],
-       0x0A64 => [0x06, 'X L Cyrillic',       'cyrillic extended-B'],
+       0x0A64 => [0x06, 'X L Cyrillic',       'cyrillic ext-B'],
        0x0A6A => [0x06, 'X L Syllabic',       'bamum'],
        0x0A70 => [0x02, 'X L Mn',             'tones'],
        0x0A72 => [0x0E, 'X L Latin',          'latin extended-D'],
@@ -297,8 +295,7 @@ use utf8;
        0x11FC => [0x04, 'X Xr L Brahmic',     'tamil+'],
        0x1200 => [0x40, 'X L Syllabic',       'cuneiform'],
        0x1240 => [0x08, 'X No',               'cuneiform numbers'],
-       0x1248 => [0x08, 'X L Syllabic',       'early dynastic cuneiform'], #TODO: join bottom but title at top
-       0x1250 => [0x05, 'X L Syllabic',       'e. dyn. cuneiform'],
+       0x1248 => [0x0D, 'X L Syllabic',       'early dynastic cuneiform'],
        0x1255 => [0x0B],
        0x1260 => [0x80, 'X Xr L Syllabic',    'proto-cuneiform'],
        0x12E0 => [0x19, 'X Xr L Syllabic',    'indus'],
@@ -374,7 +371,7 @@ use utf8;
        0x1D2E => [0x02, 'X Xr No',            'mayan', 'Mayan Numerals'],
        0x1D30 => [0x06, 'X So',               'tai xuan jing', 'tetragrams'],
        0x1D36 => [0x02, 'X No',               'rod'],
-       0x1D38 => [0x08, 'X Xr L Sm',          'mathematical alphanumeric+'],
+       0x1D38 => [0x08, 'X Xr L Sm',          'math alphanumeric+'],
        0x1D40 => [0x40, 'X L Sm',             'mathematical alphanumeric'],
        0x1D80 => [0x2B, 'X L Alpha',          'sutton'],
        0x1DAB => [0x55],
index d96ca454159657c87035b4ced238d8535c7c58bb..33eb679b9bf3f39f3575c598e35d88aac351db8a 100644 (file)
@@ -121,8 +121,18 @@ sub range_cell {
                $rest = $len if $len < $rest; #TODO: optimise
                if ($len -= $rest) {
                        # continued on new row
-                       $table->{$offset + $colsize*$rest} //= [$len*$colsize, "$class joinu", $name, $title];
-                       $name = '';
+                       my @next = ($len * $colsize, "$class joinu");
+                       if ($len > $rest) {
+                               # minority remains
+                               push @next, $name, $title;
+                               $title ||= $name;
+                               $name = '';
+                       }
+                       else {
+                               # minority on next row
+                               push @next, '"', $title || $name;
+                       }
+                       $table->{$offset + $colsize*$rest} //= \@next;
                        $class .= ' joind';
                }
                $len = $rest;