1 #!/usr/bin/perl -w -CSD
5 use vars qw($atr $value $char
6 $opt_map $opt_rev_map $opt_mapfrom $opt_mapto
7 $opt_atr $opt_allatr $opt_showatr
11 use Chise_utils ':all';
15 Usage: perl $0 [-m <map> | --map <map> |
22 -a=<atribuite> <char> |
26 total-strokes==8 means
27 the attribute of total-strokes exactly matches to 8.
29 the attribute of ids-parts contains the string 矢.
30 total-strokes==8,ids-parts=~矢 means both at the same time.
31 -a get <attribute> of <char>
32 -aa get all attributes of <char>
35 &GetOptions("mapto=s"=>\$opt_mapto,
36 "mapfrom=s"=>\$opt_mapfrom,
41 "show-attribute"=>\$opt_showatr,
47 or !((($opt_map or $opt_rev_map or $opt_mapfrom or $opt_mapto) and @ARGV==0)
48 or($opt_showatr and @ARGV==0)
55 $char=shift or $char="";
60 $opt_map="<=".$opt_mapfrom;
62 $opt_map="=>".$opt_mapto;
66 if(&get_db($opt_map)){
67 foreach $char (sort keys %{$chardb{$opt_map}}){
68 if($chardb{$opt_map}->{$char}){
69 print $char,"\t",$chardb{$opt_map}->{$char},"\n";
73 print STDERR "No map for $opt_map.\n";
76 if(&get_reverse_db($opt_rev_map)){
77 foreach $char (sort keys %{$reverse_chardb{$opt_rev_map}}){
78 if($reverse_chardb{$opt_rev_map}->{$char}){
79 print $char,"\t",$reverse_chardb{$opt_rev_map}->{$char},"\n";
83 print STDERR "No map for $opt_rev_map.\n";
87 foreach $atr (sort keys %db){
88 if($value=&get_char_attribute($char,$atr)){
89 print " ",$atr,":",$value,"\n";
94 print " ",$opt_atr,":",&get_char_attribute($char,$opt_atr),"\n";
97 foreach $atr (sort keys %db){
100 # print "In reverse DB\n";
101 # foreach $atr (sort keys %reverse_db){
102 # print " ",$atr,"\n";
106 print join "\n",&get_chars_for($query),"\n";