X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/e93e01941b5a59bafbda3914f63285184668f708..5bc057a35daefbe66bd7af15cb20343c8f2053e3:/font.plp diff --git a/font.plp b/font.plp index 66f6e4a..4cc99c9 100644 --- a/font.plp +++ b/font.plp @@ -52,12 +52,14 @@ for my $os (@ossel) { # parse input my @chars; +my @querydesc; my $query = $ENV{PATH_INFO} || $get{q} || 'ipa'; for ($query) { s{^/}{}; when (qr{^[a-z]+(?:/|\z)}) { for (split / /) { + push @querydesc, "preset group $_"; my ($tablegroup, $tablename) = split m{/}, $_, 2; my @tables = $tablename ? $tables->{$tablegroup}->{$tablename} : sort values %{ $tables->{$tablegroup} }; @@ -73,12 +75,14 @@ for ($query) { } } when (qr{[\d,;\s+-]+}) { + push @querydesc, "character codepoints $_"; for (map { split /[^\d-]/ } $_) { my ($charnum, $range) = split /-/, $_; push @chars, chr $_ for $charnum .. ($range // $charnum); } } when (qr{[A-Z]}) { + push @querydesc, "unicode match $_"; eval { my $match = qr/\A\p{$_}\z/; push @chars, grep { m/$match/ } map { chr $_ } @@ -90,12 +94,15 @@ for ($query) { } } -@chars <= 1500 - or die sprintf 'too many matches (%d)'."\n", scalar @chars; +@chars <= 1500 or die sprintf( + 'too many matches (%d) for %s'."\n", + scalar @chars, join(', ', @querydesc), +); # output character list print ''; +say ''; print '' x 3; print "" for 2, map { scalar @{$oslist{$_}} } @ossel; @@ -108,7 +115,7 @@ printf ''; print '
'.EscapeHTML(join ', ', @querydesc).'
%s fonts', scalar @{ $oslist{$_} }, $_ print '
unicode'; print 'name'; -print 'dihtml'; +print 'dihtml'; printf '%s', $font{$_}->{-name}, $font{$_}->{-id} // $_ for @fontlist; say '';