From 5e5575913e5fa1c54f209ecd9d1deae189bb7222 Mon Sep 17 00:00:00 2001
From: Mark Tompsett <mtompset@hotmail.com>
Date: Fri, 1 Apr 2016 17:59:29 -0400
Subject: [PATCH] Bug 16191: t/Ris.t is noisy
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

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>
---
 C4/Ris.pm | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/C4/Ris.pm b/C4/Ris.pm
index a1db07f..ec3159f 100644
--- 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;
     }
-- 
2.7.0