[Lxr-commits] CVS: lxr/lib/LXR/Files CVS.pm,1.22,1.23
Brought to you by:
ajlittoz
From: Dave B. <bro...@us...> - 2004-07-01 13:57:13
|
Update of /cvsroot/lxr/lxr/lib/LXR/Files In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29615/lib/LXR/Files Modified Files: CVS.pm Log Message: better tag name handling (primarily for when viewing a directory) Index: CVS.pm =================================================================== RCS file: /cvsroot/lxr/lxr/lib/LXR/Files/CVS.pm,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23 --- CVS.pm 30 Jun 2004 20:33:35 -0000 1.22 +++ CVS.pm 1 Jul 2004 13:57:03 -0000 1.23 @@ -257,7 +257,7 @@ # you can't just check for 'Attic' because for certain versions the file is alive even if in Attic $self->parsecvs($pathname.substr($node,0, length($node)-2)); # substr is to remove the ',v' my $rev = $cvs{'header'}{'symbols'}{$release}; - if ($cvs{'branch'}{$release}{'state'} eq "dead" or $cvs{'branch'}{$rev}{'state'} eq "dead") { + if ($cvs{'branch'}{$rev}{'state'} eq "dead") { next; } } @@ -286,7 +286,7 @@ # you can't just check for 'Attic' because for certain versions the file is alive even if in Attic $self->parsecvs($pathname); my $rev = $cvs{'header'}{'symbols'}{$release}; - if ($cvs{'branch'}{$release}{'state'} eq "dead" or $cvs{'branch'}{$rev}{'state'} eq "dead") { + if ($cvs{'branch'}{$rev}{'state'} eq "dead") { return undef; } } @@ -345,14 +345,22 @@ $self->parsecvs($filename); - return sort(keys(%{$cvs{'header'}{'symbols'}})); + # no header symbols for a directory, so we use the default and the current release + if (defined %{$cvs{'header'}{'symbols'}}) { + return sort keys %{$cvs{'header'}{'symbols'}}; + } else { + my @releases; + push @releases, $$LXR::Common::HTTP{'param'}{'v'} if $$LXR::Common::HTTP{'param'}{'v'}; + push @releases, $config->vardefault('v'); + return @releases; + } } sub allrevisions { my ($self, $filename) = @_; $self->parsecvs($filename); - + return sort(keys(%{$cvs{'branch'}})); } @@ -365,10 +373,11 @@ return if $cache_filename eq $filename; $cache_filename = $filename; - %cvs = (); + undef %cvs; my $file = ''; open (CVS, $self->toreal($filename, undef)); + close CVS and return if -d CVS; # we can't parse a directory while (<CVS>) { if (/^text\s*$/) { # stop reading when we hit the text. @@ -406,7 +415,8 @@ /^@/s && substr($_, 1, -1) || $_ } $v =~ /(\w+)\s*((?:[^;@]+|@[^@]*@)*);/gs }; } - + delete $cvs{'branch'}{''}; # somehow an empty branch name gets in; delete it + $cvs{'desc'} = shift(@cvs) =~ /\s*desc\s+((?:[^\n@]+|@[^@]*@)*)\n/s; $cvs{'desc'} =~ s/^@|@($|@)/$1/gs; |