Bug 16191: t/Ris.t is noisy
authorMark Tompsett <mtompset@hotmail.com>
Fri, 1 Apr 2016 21:59:29 +0000 (17:59 -0400)
committerBrendan Gallagher <brendan@bywatersolutions.com>
Wed, 6 Apr 2016 23:48:16 +0000 (23:48 +0000)
TEST PLAN
---------
1) prove t/Ris.t
   -- very noisy
2) apply patch
3) prove t/Ris.t
   -- just one confusing noise.
4) run koha qa test tools

Signed-off-by: Marc VĂ©ron <veron@veron.ch>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com
C4/Ris.pm

index a1db07f..ec3159f 100644 (file)
--- a/C4/Ris.pm
+++ b/C4/Ris.pm
@@ -388,7 +388,8 @@ sub print_typetag {
                );
     
     ## The type of a MARC record is found at position 06 of the leader
-    my $typeofrecord = substr($leader, 6, 1);
+    my $typeofrecord = defined($leader) && length $leader >=6 ?
+                       substr($leader, 6, 1): undef;
 
     ## ToDo: for books, field 008 positions 24-27 might have a few more
     ## hints
@@ -396,7 +397,11 @@ sub print_typetag {
     my %typehash;
     
     ## the ukmarc here is just a guess
-    if ($intype eq "marc21" || $intype eq "ukmarc") {
+    if (! defined $intype) {
+        ## assume MARC21 as default
+        %typehash = %ustypehash;
+    }
+    elsif ($intype eq "marc21" || $intype eq "ukmarc") {
        %typehash = %ustypehash;
     }
     elsif ($intype eq "unimarc") {
@@ -407,7 +412,7 @@ sub print_typetag {
        %typehash = %ustypehash;
     }
 
-    if (!exists $typehash{$typeofrecord}) {
+    if (!defined $typeofrecord || !exists $typehash{$typeofrecord}) {
        print "TY  - BOOK\r\n"; ## most reasonable default
        warn ("no type found - assume BOOK") if $marcprint;
     }