--- trunk2/all2all.pl 2004/09/11 23:32:41 425
+++ trunk2/all2all.pl 2004/09/12 01:25:55 426
@@ -182,7 +182,7 @@
lookup_v900 => sub { shift @{$l->{"root:".$_[0]}} },
lookup_term => sub { shift @{$l->{"d:".$_[1]}} },
lookup_mfn => sub { shift @{$l->{"900_mfn:".$_[1]}} },
- have_children => sub { $l->{"a:".$_[0]."::" } },
+ have_children => sub { defined($l->{"a:".$_[0]."::"}) },
child_code => sub { return $_[0] },
style => 'display: none',
},{
@@ -192,7 +192,7 @@
lookup_v900 => sub { shift @{$l->{"code:".$_[0]}} },
lookup_term => sub { shift @{$l->{"d:".$_[0]}} },
lookup_mfn => sub { shift @{$l->{"900_mfn:".$_[0]}} },
- have_children => sub { $l->{"a:".$_[1].":" } },
+ have_children => sub { defined($l->{"a:".$_[1].":"}) },
child_code => sub { return $_[1] },
style => 'display: none',
},{
@@ -202,16 +202,35 @@
lookup_v900 => sub { shift },
lookup_term => sub { shift @{$l->{"d:".$_[0]}} },
lookup_mfn => sub { shift @{$l->{"900_mfn:".$_[0]}} },
- have_children => sub { $l->{"a:".$_[2].":".$_[1]} },
+ have_children => sub { defined($l->{"a:".$_[2].":".$_[1]}) },
child_code => sub { return "a:".$_[2].":".$_[1] },
style => 'display: none',
},{
# 3 uži pojam
code_arr => sub { @{$l->{$_[0]}} },
filter_code => sub { shift },
- lookup_v900 => sub { shift },
- lookup_term => sub { shift @{$l->{"d:".$_[1]}} },
- lookup_mfn => sub { shift @{$l->{"900_mfn:".$_[1]}} },
+ lookup_v900 => sub {
+ my ($c,$p) = @_;
+ $p =~ s/^a:(..:....):.*$/$1/;
+ return "a:".$p.":".$c;
+ },
+ lookup_term => sub { shift @{$l->{"d:".$_[0]}} },
+ lookup_mfn => sub { shift @{$l->{"900_mfn:".$_[0]}} },
+ have_children => sub { defined($l->{$_[1]}) },
+ child_code => sub { return $_[1] },
+ },{
+ # 4
+ code_arr => sub { @{$l->{$_[0]}} },
+ filter_code => sub { shift },
+ lookup_v900 => sub {
+ my ($c,$p) = @_;
+ $p =~ s/^a:(..:....):.*$/$1/;
+ return "a:".$p.":".$c;
+ },
+ lookup_term => sub { shift @{$l->{"d:".$_[0]}} },
+ lookup_mfn => sub { shift @{$l->{"900_mfn:".$_[0]}} },
+# have_children => sub { defined($l->{$_[1]}) },
+# child_code => sub { return $_[1] },
have_children => sub { 0 },
child_code => sub { 0 },
});
@@ -236,21 +255,27 @@
$log->debug("# $level filter passed code $code");
- my $v900 = $tree[$level]->{'lookup_v900'}->($code) || $log->logdie("can't lookup_v900 '$code'");
- $log->debug("# $level lookup_v900($code) = $v900");
- my $term = $tree[$level]->{'lookup_term'}->($code,$v900) || $log->logdie("can't lookup_term '$v900'");
+ my $v900 = $tree[$level]->{'lookup_v900'}->($code,$start_code) || $log->warn("can't lookup_v900($code,$start_code)");
+ $log->debug("# $level lookup_v900($code,$start_code) = $v900");
+
+ my $term = $tree[$level]->{'lookup_term'}->($code,$v900) || $log->warn("can't lookup_term($code,$v900)");
$log->debug("# $level lookup_term($code,$v900) = $term");
- my $mfn = $tree[$level]->{'lookup_mfn'}->($code,$v900) || $log->logdie("can't lookup_mfn '$v900'");
+
+ my $mfn = $tree[$level]->{'lookup_mfn'}->($code,$v900) || $log->warn("can't lookup_mfn($code,$v900)");
$log->debug("# $level lookup_mfn($code,$v900) = $mfn");
$log->debug("$code -> $v900 : $term [$mfn]");
+ my ($link_start,$link_end) = ('','');
my $have_children = $tree[$level]->{'have_children'}->($code,$v900,$start_code);
+ if ($have_children) {
+ ($link_start,$link_end) = (qq{},qq{});
+ } else {
+ $log->debug("# $level doesn't have_children($code,$v900,$start_code)");
+ }
- my ($link_start,$link_end) = ('','');
-
- ($link_start,$link_end) = (qq{},qq{}) if ($have_children);
+ $log->debug("# $level children re-check failed", sub { Dumper($tree[$level]->{'have_children'}->($code,$v900,$start_code)) }) if (defined($l->{$v900}) && ! $tree[$level]->{'have_children'}->($code,$v900,$start_code));
my $mfn_link = "thes/$mfn.html";
if (-e "out/$mfn_link") {
@@ -262,7 +287,6 @@
}
unless ($have_children) {
- $log->warn("doesn't have_children($code,$v900,$start_code)");
next;
}