]> git.donarmstrong.com Git - debbugs.git/commitdiff
[project @ 2001-08-17 06:49:36 by doogie]
authordoogie <>
Fri, 17 Aug 2001 13:49:36 +0000 (05:49 -0800)
committerdoogie <>
Fri, 17 Aug 2001 13:49:36 +0000 (05:49 -0800)
Make a getbugdir function, and modify getbugstatus and buglog to use it.
Also, have it look in db-h/(which has the same layout as archive/) before
looking in db/ for files.

cgi/common.pl

index 2f0dc2b51b8bcd019373bf78f7a15cee09b5e9f7..17f5b4f55fa60fd4ef33b637946354aa2d64712f 100644 (file)
@@ -388,15 +388,23 @@ sub getmaintainers {
     return \%maintainer;
 }
 
+sub getbugdir {
+    my ( $bugnum, $ext ) = @_;
+    my $archdir = sprintf "%02d", $bugnum % 100;
+    foreach ( ( "$gSpoolDir/db-h/$archdir", "$gSpoolDir/db", "$gSpoolDir/archive/$archdir" ) ) {
+       return $_ if ( -r "$_/$bugnum.$ext" );
+    }
+    return undef;
+}
+    
 sub getbugstatus {
     my $bugnum = shift;
 
     my %status;
 
-    unless (open(S,"$gSpoolDir/db/$bugnum.status")) {
-        my $archdir = sprintf "%02d", $bugnum % 100;
-       open(S,"$gSpoolDir/archive/$archdir/$bugnum.status" ) or return {};
-    }
+    my $dir = getbugdir( $bugnum, "status" );
+    return {} if ( !$dir );
+    open S, "< $status{ file }";
     my @lines = qw(originator date subject msgid package tags done
                        forwarded mergedwith severity);
     while(<S>) {
@@ -420,16 +428,10 @@ sub getbugstatus {
 
 sub buglog {
     my $bugnum = shift;
-    my $res;
 
-    $res = "$gSpoolDir/db/$bugnum.log"; 
-    return $res if ( -e $res );
-
-    my $archdir = sprintf "%02d", $bugnum % 100;
-    $res = "$gSpoolDir/archive/$archdir/$bugnum.log";
-    return $res if ( -e $res );
-
-    return "";
+    my $dir = getbugdir( $bugnum, "log" );
+    return "" if ( !$dir );
+    return "$dir/$bugnum.log";
 }
 
-1
+1;