6 my $DB_HOME = '/usr/local/lib/xemacs-21.4.10/i686-pc-linux/char-db';
9 for (glob "$DB_HOME/system-char-id/*") {
20 'radical','ideographic-radical',
21 'strokes','ideographic-strokes',
24 #--------------------------------------------------------#
28 my $class = ref($invocant) || $invocant;
30 return bless $self, $class;
35 for my $i (keys %$self) {
36 print "$i => $$self{$i}\n";
42 my $self = $model->new(%$model, @_);
48 delete $$model{$_} foreach (@_);
49 my $self = $model->new(%$model);
54 for my $attrname (keys %alias) {
55 my $slot = __PACKAGE__ . "::$attrname";
60 for my $i ($self->chars) {
61 my $j = &getvalue("$DB_HOME/system-char-id/$alias{$attrname}", $i);
62 push @result, $j if $j;
72 for my $i ($self->chars) {
74 # To Do: 私用域のはさないようにしないと。
80 #--------------------------------------------------------#
86 for my $attrname (keys %$self) {
88 my $dbname = exists $alias{$attrname} ? $alias{$attrname} : $attrname;
89 if (-f "$DB_HOME/$dbname/system-char-id") {
90 @tmp = (&getvalue("$DB_HOME/$dbname/system-char-id", $$self{$attrname}));
91 @result = &cap(\@result, \@tmp);
92 } elsif (-f "$DB_HOME/system-char-id/$dbname") {
93 @tmp = &getkeys("$DB_HOME/system-char-id/$dbname", $$self{$attrname});
94 @result = &cap(\@result, \@tmp);
96 die "cannot find $attrname: $! $BerkeleyDB::Error\n";
104 my($dbname, $key) = @_;
105 tie my %h, "BerkeleyDB::Hash",
106 -Filename => $dbname;
107 my $value = $h{$key};
114 my($dbname, $value) = @_;
115 tie my %h, "BerkeleyDB::Hash",
116 -Filename => $dbname;
118 for my $key (keys %h) {
119 push @keys, $key if ($h{$key} eq $value);
130 } elsif ($$a[0] eq '*') { # '*'は全体合
132 } elsif ($$b[0] eq '*') {
137 for my $i (@$a, @$b) {
139 push @result, $i if ($result{$i} == 2);
149 #--------------------------------------------------------#