digraphs: mark reversed matches
authorMischa POSLAWSKY <perl@shiar.org>
Sat, 13 Sep 2008 08:48:38 +0000 (08:48 +0000)
committerMischa POSLAWSKY <perl@shiar.org>
Tue, 16 Sep 2008 03:31:31 +0000 (03:31 +0000)
At undefined digraph points, at least Vim also recognizes another
digraph with its characters swapped if it exists.  Style these cases
differently, to say it might actually do something as well.
Also hover the code, but do not show any additional information to
discourage actual usage instead of the original.

digraphs.css
digraphs.inc.pl
digraphs.plp
rfc1345convert

index 60c0a56..dc62529 100644 (file)
@@ -70,7 +70,14 @@ td {
        background: #DDD;
 }
 
-td.X {background: #FFF} /* unidentified */
+/* properties */
+td.X  {background: #FFF} /* unidentified */
+td.Xr {background: #EEE} /* reverse */
+td.Xa {color: #0A0} /* ascii */
+td.Xl {color: #070} /* latin1 */
+td.Co {color: #800} /* private */
+td.Xz {color: #D00} /* proposed */
+
 td.Lm, td.Mc, td.Me, td.Zl, td.Zp, td.Cs {background: #F00} /* unstyled */
 
 /* letter scripts */
@@ -96,12 +103,6 @@ td.Cc         {color: #666; background: #BBB} /* control */
 td.Zs                      {background: #ACB} /* space */
 td.Zs span                 {background: #EEE}
 
-/* properties */
-td.Xa {color: #0A0} /* ascii */
-td.Xl {color: #070} /* latin1 */
-td.Co {color: #800} /* private */
-td.Xz {color: #D00} /* proposed */
-
 /* hover effects */
 td.X:hover {cursor: help}
 td.Greek:hover                                     {background: #FA9}
index 271d464..79d09ec 100644 (file)
@@ -1,4 +1,5 @@
-{
++{
+(map {$_=>0} qw{!! )! *! -! 2! :! <! =! >! I! b! c! q! x! !" "" '" (" +" ," -" ." /" 0" 1" 3" 5" 6" 9" :" ;" <" =" >" ?" _" d" i" p" "% '% 0% 2% 5% 6% !' "' %' '' (' +' ,' -' .' 0' 6' 9' :' ;' <' >' ?' G' m' n' !( "( '( -( A( C( I( S( U( _( s( ") ') >) C) I) S) U) _) s) ** -* 1* 2* 5* 6* >* P* X* _* s* "+ ++ -+ 5+ 6+ S+ Z+ _+ s+ !, ', +, ,, G, _, !- )- +- -- 1- 2- 3- 6- :- >- ?- L- M- N- S- T- V- X- a- o- s- v- .. 3. 6. 9. :. M. P. S. _. +/ -/ // 0/ =/ >/ c/ f/ (0 +0 .0 00 20 50 L0 M0 R0 S0 U0 _0 a0 m0 o0 s0 u0 "1 '1 +1 .1 21 31 41 51 61 81 H1 M1 N1 R1 S1 T1 a1 c1 h1 j1 r1 s1 "2 %2 '2 .2 /2 32 52 R2 S2 a2 c2 h2 j2 r2 s2 !3 "3 '3 *3 +3 -3 .3 /3 43 53 83 M3 R3 S3 _3 a3 c3 h3 j3 r3 s3 !4 -4 .4 /4 54 M4 R4 S4 _4 a4 c4 h4 j4 r4 s4 %5 .5 65 85 R5 S5 a5 c5 r5 s5 %6 .6 M6 R6 S6 a6 c6 r6 s6 .7 87 <7 >7 R7 S7 a7 c7 r7 s7 .8 R8 S8 a8 c8 r8 s8 "9 '9 .9 R9 S9 a9 c9 r9 s9 (: ): +: .: 3: 9: :: R: S: X: !; '; +; ;; S; _; "< '< (< *< +< -< /< 1< 3< 7< << =< >< H< "= '= += 2= 3= <= == >= ?= S= T= _= e= s= "> '> +> 1> 7> => >> H> V> !? *? +? ,? -? .? /? 1? 2? :? ;? =? I? S? !A %A 'A (A )A *A +A -A .A 0A 1A 2A 3A 5A 6A 7A 8A :A ;A <A =A >A ?A AA CA EA KA NA OA tA *B +B -B .B /B 2B =B BB DB HB LB SB _B aB dB eB iB oB uB %C 'C *C ,C .C 2C 3C <C =C >C CC GC IC NC RC aC iC oC tC uC %D *D +D ,D -D .D /D 1D 2D 3D 4D ;D <D =D CD ED GD HD ID LD OD RD SD TD ZD _D aD bD eD hD iD lD oD rD tD uD wD !E %E 'E (E )E *E +E ,E -E .E /E 2E 5E 6E 8E :E ;E <E =E >E ?E BE CE DE GE ME QE SE TE XE ZE hE uE *F .F 2F 3F =F AF BF DF FF IF SF dF lF mF %G 'G (G *G +G ,G -G .G /G 2G 3G <G =G >G CG FG SG aG eG iG oG uG 'H *H +H ,H .H /H :H =H >H HH IH JH OH SH TH WH aH eH iH oH uH !I %I 'I (I )I *I -I .I /I 2I 5I 6I 8I :I ;I <I =I >I ?I EI II JI NI OI SI cI lI nI oI uI %J *J +J /J <J =J >J AJ EJ UJ %K 'K *K +K ,K 2K 3K <K =K AK EK JK _K aK eK iK oK uK 'L *L +L ,L .L /L <L =L ?L BL DL FL JL ZL _L iL %M 'M *M +M .M 2M 3M 8M =M IM WM XM aM bM dM eM iM lM oM uM xM yM !N %N 'N *N +N ,N .N 0N 2N 6N <N =N ?N BN GN HN IN JN KN LN ON SN UN _N aN bN eN iN oN uN !O "O %O 'O (O )O *O -O .O /O 1O 2O 3O 5O 6O 8O 9O :O ;O <O =O >O ?O CO EO IO KO RO SO bO mO rO %P 'P *P +P .P /P 1P 2P 3P =P AP DP IP LP MP OP PP RP UP aP dP eP iP oP tP uP *Q +Q ;Q 'R )R *R +R ,R .R /R 8R ;R <R =R BR FR HR IR KR OR SR TR XR YR ZR _R aR eR gR iR oR rR uR xR %S 'S *S +S ,S .S 2S 3S <S =S >S AS BS CS ES GS HS IS MS OS RS SS TS US XS YS aS bS cS eS hS iS nS oS uS *T +T ,T .T /T 2T 3T ;T <T =T BT ET HT MT RT ST UT _T aT eT iT jT lT oT rT sT uT !U "U %U 'U (U )U *U -U /U 0U 2U 5U 6U 8U 9U :U ;U <U =U >U ?U AU BU DU HU LU RU SU TU hU lU rU %V *V 2V 3V =V ?V HV IV LV RV SV TV VV aV eV hV iV lV oV rV sV uV !W %W 'W *W +W .W :W =W >W AW WW aW eW iW oW *X +X .X :X XX !Y %Y 'Y *Y -Y .Y /Y 2Y 3Y :Y ;Y =Y >Y ?Y AY IY OY UY YY aY eY oY uY %Z 'Z *Z +Z .Z /Z 2Z <Z =Z >Z JZ _Z aZ eZ iZ jZ oZ uZ !a %a 'a (a )a *a +a -a .a 0a 1a 2a 3a 4a 5a 6a 7a 8a :a ;a <a =a >a ?a Ha Ia Ma Na Ra Sa aa ca ea ha ia ma na ra sa ua *b +b -b .b /b 2b 3b 4b =b ?b Rb _b ab eb ib ob rb ub %c 'c *c +c ,c .c 2c 3c 4c 9c <c =c >c Cc Dc Hc Rc Sc hc oc rc uc %d *d +d ,d -d .d /d 2d 4d 9d ;d <d =d ?d Hd Ld Pd Rd Td _d ad bd dd ed hd id kd ld od rd sd ud zd !e %e 'e (e )e *e +e ,e -e .e /e 2e 4e 5e 6e 8e :e ;e <e =e >e ?e Ie Ne de ie ne re ze (f *f +f .f 2f 3f 4f =f ?f If Sf ff if lf tf %g 'g (g *g +g ,g -g .g /g 2g 3g 4g <g =g >g Ig ag eg fg ig ng og ug *h +h ,h .h /h 2h 4h :h =h >h Ih _h ah eh hh ih kh oh uh wh !i %i 'i (i )i *i +i -i .i /i 2i 3i 4i 5i 6i 8i :i ;i <i =i >i ?i Ii ei ii ji oi ui %j *j +j .j /j 3j 4j <j =j >j aj ej uj 'k *k +k ,k 2k 3k 4k <k =k Ik _k ak ek ik jk kk ok uk 'l *l +l ,l -l .l /l 4l 9l ;l <l =l ?l Bl _l jl 'm *m +m .m 3m 4m ;m =m ?m Im am em im om um !n 'n *n +n ,n .n 2n 4n 5n 9n ;n <n =n ?n Gn Sn _n an en gn in jn on un !o "o %o 'o (o )o *o -o .o /o 1o 2o 3o 4o 5o 6o 8o 9o :o ;o <o =o >o ?o Co Fo Io eo io uo 'p *p +p .p /p 2p 3p 4p =p ?p ap ep ip mp op up *q +q 2q 4q ;q pq 'r )r *r +r ,r .r /r 4r 8r ;r <r =r ?r Ir _r ar er ir or ur %s 's *s +s ,s .s 4s ;s <s =s >s ?s Bs as cs es hs is ns os ss ts us *t +t ,t .t /t 2t 3t 4t 9t :t ;t <t =t ?t It Ut _t at et ht it jt kt mt ot st ut !u "u %u 'u (u )u *u -u /u 0u 2u 3u 4u 5u 6u 8u 9u :u ;u <u =u >u ?u Hu Lu Ru Tu hu lu ru %v *v +v 2v 3v 4v 9v =v ?v Hv Iv Lv Rv hv lv rv uv vv !w %w 'w *w +w .w 0w :w >w Aw Hw Iw aw ew iw ow ww *x +x .x 4x :x !y %y 'y *y +y -y .y /y 0y 2y 3y :y ;y =y >y ?y Ay Hy Iy Oy Uy ay iy oy ry uy yy %z 'z *z +z .z /z 2z 4z 9z ;z <z =z >z ?z Hz _z az ez hz iz oz uz}),
 q{!!}=>[124,'VERTICAL LINE','Sm Xa','Common'],
 q{!)}=>[125,'RIGHT CURLY BRACKET','Pe Xa','Common'],
 q{!*}=>[57382,'','Co','Common'],
index b62b577..075a398 100644 (file)
@@ -57,6 +57,10 @@ for my $c1group (@chars) {
                                print '<td>';
                                next;
                        }
+                       if (ref $di->{$mnem} ne 'ARRAY') {
+                               printf '<td class="X Xr" title="%s">', quote($mnem);
+                               next;
+                       }
                        my ($codepoint, $name, $prop, $script) = @{ $di->{$mnem} };
 
                        my $glyph = chr $codepoint;
index d33377f..c5a3e80 100644 (file)
@@ -90,7 +90,10 @@ for (keys %di) {
 
 # output perl code of hash
 # (assume no backslashes or curlies, so we can just q{} w/o escaping)
-print "{\n";
+print "+{\n";
+printf '(map {$_=>0} qw{%s}),'."\n", join(' ',
+       map { substr($_, 1, 1).substr($_, 0, 1) } sort keys %di
+);
 printf "q{%s}=>[%s],\n", $_, join(',',
        $di{$_},       # glyph code point
        $info{$_}  # optional additional arguments