--- 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; }