From 91523fd99bf7248de87ab947e1d6226b7bf20e57 Mon Sep 17 00:00:00 2001 From: Mark Tompsett Date: Sun, 2 Sep 2012 20:46:03 +0800 Subject: [PATCH] Bug 8175 - check logs error or displays incorrectly in details.pl Content-Type: text/plain; charset="utf-8" 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. --- 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.9.5