From 1c2516c0c4ccbfd51cbc501539a4dc9d5eb881fb Mon Sep 17 00:00:00 2001
From: Mark Tompsett <mtompset@hotmail.com>
Date: Sun, 2 Sep 2012 20:46:03 +0800
Subject: [PATCH] Bug 8175 - check logs error or displays incorrectly in
 details.pl

Changed "$item->{'materials'} ne ''" to
"defined($item->{'materials'}) && $item->{'materials'} =~ /\S/"
in if condition to prevent error when it is NULL, and to
properly capture the intent of printing if there is something
visible.

Cases tested include NULL, '0', '', ' ', and 'blah' by using
 UPDATE items SET materials=NULL where biblionumber=19158;
where the biblionumber was chosen randomly, because only NULL
was in the items.materials field. The NULL case triggers an
error, but it does display correctly.

The ' ' case displays an apparently empty column, which does not
seem to be the intent of the flag that is being set. This is why
a simple $var check is not sufficient.

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
---
 catalogue/detail.pl |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/catalogue/detail.pl b/catalogue/detail.pl
index f2ad4eb..b630d5e 100755
--- a/catalogue/detail.pl
+++ b/catalogue/detail.pl
@@ -261,7 +261,7 @@ foreach my $item (@items) {
 		$analytics_flag=1;
 		$item->{countanalytics} = $countanalytics;
 	}
-    if ($item->{'materials'} ne ''){
+    if (defined($item->{'materials'}) && $item->{'materials'} =~ /\S/){
 	$materials_flag = 1;
     }
     push @itemloop, $item;
-- 
1.7.10.4