X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/fa8b78782cf8ce0639cab402ac0d8d3afca92891..5ece27f37579b61cebd2a43c2b127fe46c20f424:/unicode.plp diff --git a/unicode.plp b/unicode.plp index 739e8a7..475a887 100644 --- a/unicode.plp +++ b/unicode.plp @@ -31,12 +31,13 @@ use Shiar_Sheet::FormatChar; my $glyphs = Shiar_Sheet::FormatChar->new; if (exists $get{di}) { - $glyphs->{digraph} = defined $get{di} ? ! !$get{di} : 1; - $glyphs->{unicode} = 1; + $glyphs->{anno} = [ (!defined $get{di} || $get{di}) && 'di', 'hex' ]; } if (exists $get{q}) { - $glyphs->{unicode} = -1; - $glyphs->{digraph}--; + $glyphs->{anno} = []; +} +if (exists $get{html}) { + $glyphs->{anno} = ['html', 'xml']; } our $verbose = exists $get{v}; @@ -45,39 +46,47 @@ 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] =~ /\./; } - my @cells = map { $_*$rowlen .. ($_+1)*$rowlen - 1 } @select; - [ @$table[@cells] ]; - } - else { - $tables->{$group}->{$_}; + my @cells = map { + my $end = (s/-(.+)?// ? ($1 // @$table / $rowlen - 1) : $_) + 1; + $_ * $rowlen .. $end * $rowlen - 1; + } @select; + $table = [ @$table[@cells] ]; } + $table; } } qw{ Popular punctuation/quoting common - symbols/binary?symbols/binary=0 - latin/sample=0=1 - sample=2=3 + symbols/binary?symbols/binary=-5 + latin/sample=-1 + sample=2-3 ?uncommon punctuation/version punctuation/marks Symbols symbols/currency cards + ?chess signs1 communic=0?communic trinity=0?trinity @@ -85,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 @@ -102,7 +116,7 @@ $glyphs->print(map { whitetri ?-large ?-heavy - Line drawing + Line_drawing lines/double doubleh doublev @@ -135,8 +149,8 @@ $glyphs->print(map {
ascii - <:= $glyphs->{digraph} ? 'digraph' : 'latin1' :> - <:= $glyphs->{digraph} ? 'proposed' : 'BMP' :> + <:= $glyphs->{style} eq 'di' ? 'digraph' : 'latin1' :> + <:= $glyphs->{style} eq 'di' ? 'proposed' : 'BMP' :> other unicode discouraged