From 5ece27f37579b61cebd2a43c2b127fe46c20f424 Mon Sep 17 00:00:00 2001 From: Mischa POSLAWSKY Date: Sat, 25 Dec 2010 03:24:10 +0100 Subject: [PATCH] unicode: various table selection fixes and improvements - Bork on invalid names - Fix spaces in titles (second word would be silently dropped) - Skip hidden tables entirely - Reposition maths to improve visualisation --- unicode.plp | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/unicode.plp b/unicode.plp index 5f2c576..475a887 100644 --- a/unicode.plp +++ b/unicode.plp @@ -46,15 +46,21 @@ my $tables = do 'unicode.inc.pl' or die $@ || $!; $glyphs->print(map { my $_ = /(.*)\?(.*)/ ? ($verbose ? $2 : $1) : $_; - if (/[A-Z]/) { + if (!$_) { + (); + } + elsif (/[A-Z]/) { + tr/_/ /; $_; } else { state $group; $group = $1 if s{^([^/]+)/}{}; - if (s/=(.*)//) { - my @select = split /=/, $1; - my $table = $tables->{$group}->{$_}; + my @select = s/=(.*)// ? split(/=/, $1) : (); + my $table = $tables->{$group}->{$_} + or die "Unknown table specified: $group/$_"; + + if (@select) { my $rowlen; for ($rowlen = 1; $rowlen++; $rowlen <= $#$table) { last if $table->[$rowlen] =~ /\./; @@ -63,11 +69,9 @@ $glyphs->print(map { my $end = (s/-(.+)?// ? ($1 // @$table / $rowlen - 1) : $_) + 1; $_ * $rowlen .. $end * $rowlen - 1; } @select; - [ @$table[@cells] ]; - } - else { - $tables->{$group}->{$_}; + $table = [ @$table[@cells] ]; } + $table; } } qw{ Popular @@ -79,10 +83,6 @@ $glyphs->print(map { ?uncommon punctuation/version punctuation/marks - math/size - equal - set - logic Symbols symbols/currency cards @@ -94,13 +94,18 @@ $glyphs->print(map { Signs solar zodiac=0?zodiac - Key commands + Key_commands keys/spacing editing modifier control command ?player + Mathematics + math/size + equal + set + logic Arrows arrows/single double @@ -111,7 +116,7 @@ $glyphs->print(map { whitetri ?-large ?-heavy - Line drawing + Line_drawing lines/double doubleh doublev -- 2.30.0