From 78b396195d6ef6ec5a3a51b140f8046fb8af5959 Mon Sep 17 00:00:00 2001
From: Don Armstrong <don@volo>
Date: Tue, 30 Jan 2007 00:14:02 -0800
Subject: [PATCH]  * Use a DEBBUG_FH global (temporarily until we get better
 logging)  * Use $fh2 inside of the file lock eval so we don't conflict with
 $fh    outside

---
 Debbugs/Common.pm | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/Debbugs/Common.pm b/Debbugs/Common.pm
index feb76ed1..91b0259d 100644
--- a/Debbugs/Common.pm
+++ b/Debbugs/Common.pm
@@ -50,6 +50,8 @@ use Mail::Address;
 
 use Fcntl qw(:flock);
 
+our $DEBUG_FH = \*STDERR if not defined $DEBUG_FH;
+
 =head1 UTILITIES
 
 The following functions are exported by the C<:util> tag
@@ -75,10 +77,9 @@ sub getbugcomponent {
 	return undef if defined $location and
 			($location ne 'db' and $location ne 'db-h');
     }
-    return undef if not defined $location;
     my $dir = getlocationpath($location);
     return undef if not defined $dir;
-    if ($location eq 'db') {
+    if (defined $location and $location eq 'db') {
 	return "$dir/$bugnum.$ext";
     } else {
 	my $hash = get_hashname($bugnum);
@@ -167,8 +168,8 @@ Opens a file for appending and writes data to it.
 sub appendfile {
 	my $file = shift;
 	if (!open(AP,">>$file")) {
-		print DEBUG "failed open log<\n";
-		print DEBUG "failed open log err $!<\n";
+		print $DEBUG_FH "failed open log<\n" if $DEBUG;
+		print $DEBUG_FH "failed open log err $!<\n" if $DEBUG;
 		&quit("opening $file (appendfile): $!");
 	}
 	print(AP @_) || &quit("writing $file (appendfile): $!");
@@ -251,11 +252,11 @@ sub filelock {
     $count= 10; $errors= '';
     for (;;) {
 	my $fh = eval {
-	     my $fh = new IO::File $lockfile,'w'
+	     my $fh2 = IO::File->new($lockfile,'w')
 		  or die "Unable to open $lockfile for writing: $!";
-	     flock($fh,LOCK_EX|LOCK_NB)
+	     flock($fh2,LOCK_EX|LOCK_NB)
 		  or die "Unable to lock $lockfile $!";
-	     return $fh;
+	     return $fh2;
 	};
 	if ($@) {
 	     $errors .= $@;
@@ -318,7 +319,7 @@ instead. (Or possibly a die handler, if the cleanups are important)
 =cut
 
 sub quit {
-    print DEBUG "quitting >$_[0]<\n";
+    print $DEBUG_FH "quitting >$_[0]<\n" if $DEBUG;
     my ($u);
     while ($u= $cleanups[$#cleanups]) { &$u; }
     die "*** $_[0]\n";
-- 
2.39.5