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 60c0a560b4ede351829e5f50e92be79ce7aa5934..dc62529cc2a5b74532b6268ffc1d2f33c85a4b0c 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 271d46490d4a75514a15de257c704aee8319b6ee..79d09ec8b7519cab84e31a5dc0bf5602197ec78d 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 b62b57774b9f85a425dc9b84ed6b3b26e2c62c0f..075a398ceb6bce8faf7b4424433e44a497f2557b 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 d33377fc5cbd413c4b43f816dc15861357b1f4d0..c5a3e80c9cec88d0c5f71ba8f4cd9c6469a333f1 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