From: Mike Taylor Date: Fri, 2 Feb 2007 11:31:30 +0000 (+0000) Subject: Correct listing of access-points in calc_ap() in the case of singletons. X-Git-Tag: CPAN-v1.02~54^2~579 X-Git-Url: http://git.indexdata.com/?p=irspy-moved-to-github.git;a=commitdiff_plain;h=1781c09acc2e3377fd5fbec3a55941dd3fa9f8a6 Correct listing of access-points in calc_ap() in the case of singletons. --- diff --git a/web/htdocs/details/full.mc b/web/htdocs/details/full.mc index 8cb4863..dd48c28 100644 --- a/web/htdocs/details/full.mc +++ b/web/htdocs/details/full.mc @@ -1,4 +1,4 @@ -%# $Id: full.mc,v 1.21 2007-01-24 09:28:02 mike Exp $ +%# $Id: full.mc,v 1.22 2007-02-02 11:31:30 mike Exp $ <%args> $id @@ -107,28 +107,27 @@ sub calc_init_options { sub calc_ap { my($xc, $set) = @_; - my $expr = 'e:indexInfo/e:index/e:map/e:attr[ + my $expr = 'e:indexInfo/e:index[@search = "true"]/e:map/e:attr[ @set = "'.$set.'" and @type = "1"]'; - my @bib1nodes = $xc->findnodes($expr); - my $nbib1 = @bib1nodes; - return "[none]" if $nbib1 == 0; + my @nodes = $xc->findnodes($expr); + my $n = @nodes; + return "[none]" if $n == 0; my $res = ""; my($first, $last); - @bib1nodes = sort { $a->findvalue(".") <=> $b->findvalue(".") } @bib1nodes; - foreach my $node (@bib1nodes) { + @nodes = sort { $a->findvalue(".") <=> $b->findvalue(".") } @nodes; + foreach my $node (@nodes) { my $ap .= $node->findvalue("."); if (!defined $first) { - $first = $ap; - } elsif (!defined $last || $last == $ap-1) { - $last = $ap; + $first = $last = $ap; + } elsif ($ap == $last+1) { + $last++; } else { # Got a complete range $res .= ", " if $res ne ""; $res .= "$first"; - $res .= "-$last" if defined $last; - $first = $ap; - $last = undef; + $res .= "-$last" if $last > $first; + $first = $last = $ap; } } @@ -136,10 +135,10 @@ sub calc_ap { if (defined $first) { $res .= ", " if $res ne ""; $res .= "$first"; - $res .= "-$last" if defined $last; + $res .= "-$last" if $last > $first; } - return "$nbib1 access points: $res"; + return "$n access points: $res"; } sub calc_boolean {