From: Colin Campbell Date: Mon, 14 Sep 2009 18:26:47 +0000 (+0100) Subject: bug 3614 Fix incorrect setting of indicator X-Git-Tag: v3.02.00-alpha~104 X-Git-Url: http://git.rot13.org/?a=commitdiff_plain;h=dab68f884fcdfe8d12928aa202a074e95aa996c1;p=koha.git bug 3614 Fix incorrect setting of indicator Pull the code into its own subr so that the dangers of inaccurate copy & paste are avoided in future Signed-off-by: Galen Charlton --- diff --git a/C4/Biblio.pm b/C4/Biblio.pm index cdb119fc59..b851bc084e 100644 --- a/C4/Biblio.pm +++ b/C4/Biblio.pm @@ -1707,10 +1707,8 @@ sub TransformHtmlToXml { $first = 1; } else { - my $ind1 = substr( @$indicator[$j], 0, 1 ); - my $ind2 = substr( @$indicator[$j], 1, 1 ); - $ind1 = " " if !defined($ind2) or $ind2 eq ""; - $ind2 = " " if !defined($ind2) or $ind2 eq ""; + my $ind1 = default_ind_to_space( substr( @$indicator[$j], 0, 1 ) ); + my $ind2 = default_ind_to_space( substr( @$indicator[$j], 1, 1 ) ); $xml .= "\n"; $xml .= "@$values[$i]\n"; $first = 0; @@ -1723,10 +1721,8 @@ sub TransformHtmlToXml { } else { if ($first) { - my $ind1 = substr( @$indicator[$j], 0, 1 ); - my $ind2 = substr( @$indicator[$j], 1, 1 ); - $ind1 = " " if !defined($ind2) or $ind2 eq ""; - $ind2 = " " if !defined($ind2) or $ind2 eq ""; + my $ind1 = default_ind_to_space( substr( @$indicator[$j], 0, 1 ) ); + my $ind2 = default_ind_to_space( substr( @$indicator[$j], 1, 1 ) ); $xml .= "\n"; $first = 0; } @@ -1753,6 +1749,21 @@ sub TransformHtmlToXml { return $xml; } +=head2 default_ind_to_space + +Passed what should be an indicator returns a space +if its undefined or zero length + +=cut + +sub default_ind_to_space { + my $s = shift; + if (!defined $s || $s eq q{} ) { + return ' '; + } + return $s; +} + =head2 TransformHtmlToMarc L<$record> = TransformHtmlToMarc(L<$params>,L<$cgi>)