bash: keyboard page for bash shell defaults
[sheet.git] / charset.plp
index f546f2d2c6a99fb06d4e60fd90ee22a327a99daf..6b6e7d0bf7655e36d7887b8b51433c9d30b20c91 100644 (file)
@@ -53,7 +53,20 @@ my @request = map {
                if ($input =~ s/-$//) {
                        $endpoint = $row{offset} ? $row{offset} < 160 ? 159 : 191 : 127;
                }
-               if ($row{set} = resolve_alias($input)) {
+
+               if ($input =~ /^U([0-9a-f]+)(?:-([0-9a-f]+))?/) {
+                       my $start = hex($1) << ($2 ? 4 : 8);
+                       my $end = $2 ? hex($2) << 4 : $start + 240;
+                       $row{table} = join '', map { chr } $start .. $end+15;
+                       utf8::upgrade($row{table});  # prevent latin1 output
+                       $row{set} = sprintf 'Unicode block U+%02Xxx', $start >> 8;
+               }
+               elsif ($input eq 'U') {
+                       $row{table} = ' ' x 512;
+                       $row{set} = 'Unicode planes';
+                       $row{cell} = do 'charset-ucplanes.inc.pl';
+               }
+               elsif ($row{set} = resolve_alias($input)) {
                        if ($row{set} eq 'Internal') {
                                $row{table} = ' ' x ($endpoint < 255 ? 640 : 4096);
                                $row{set} = 'Unicode BMP';
@@ -100,7 +113,7 @@ print "<ul>\n";
 
 my @nibble = (0..9, 'A'..'F');
 for my $row (@request) {
-       print '<li><table class="glyphs">';
+       printf '<li><table class="glyphs%s">', !$row->{cell} && ' charmap';
        printf '<caption>%s</caption>', $row->{set};
        print '<col>';
        for my $section (qw{thead}) {
@@ -148,6 +161,47 @@ print "</ul>\n";
 :>
 <hr>
 
+<div class="legend">
+       <table class="glyphs"><tr>
+       <td class="X Cc">control
+       <td class="X Zs"><span>whitespace</span>
+       <td class="X Mn">diacritic<table class="glyphs"><tr>
+               <td class="X Sk">letter
+               </table>
+       <td class="X Po">punctuation<table class="glyphs"><tr>
+               <td class="X Pf">quote
+               </table>
+       <td class="X So">symbol<table class="glyphs"><tr>
+               <td class="X Sm">math
+               <td class="X Sc">currency
+               </table>
+       <td class="X No">numeric
+       <td class="X Greek">greek<table class="glyphs"><tr>
+               <td class="X Latin">latin
+               <td class="X Cyrillic">cyrillic
+               </table>
+       <td class="X Aramaic">aramaic<table class="glyphs"><tr>
+               <td class="X Brahmic">brahmic
+               <td class="X Arabic">arabic
+               </table>
+       <td class="X Syllabic">syllabic<table class="glyphs"><tr>
+               <td class="X African">african
+               <td class="X Hiragana">japanese
+               <td class="X Han">cjk
+               <td class="X Bopomofo">chinese
+               </table>
+       <td class="X Alpha">alphabetic
+       </table>
+
+       <table class="glyphs"><tr>
+       <td class="X">unicode 5.0
+       <td class="X Xr">proposed
+       <td class="X Xd">deprecated
+       <td class="">unassigned
+       <td class="X Xi">invalid
+       </table>
+</div>
+
 <p class="footer">
        <a href="http://sheet.shiar.nl/" rel="home">sheet.shiar.nl</a>/charset
        <a href="git://git.shiar.nl/sheet" rel="vcs-git" title="Git repository"><:= "v$VERSION" :></a>