[Koha-patches] [PATCH 4/4] bug 3614 Fix incorrect setting of indicator
Colin Campbell
colin.campbell at ptfs-europe.com
Mon Sep 14 20:26:47 CEST 2009
Pull the code into its own subr so that the dangers of
inaccurate copy & paste are avoided in future
---
C4/Biblio.pm | 27 +++++++++++++++++++--------
1 files changed, 19 insertions(+), 8 deletions(-)
diff --git a/C4/Biblio.pm b/C4/Biblio.pm
index cdb119f..b851bc0 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 .= "<datafield tag=\"@$tags[$i]\" ind1=\"$ind1\" ind2=\"$ind2\">\n";
$xml .= "<subfield code=\"@$subfields[$i]\">@$values[$i]</subfield>\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 .= "<datafield tag=\"@$tags[$i]\" ind1=\"$ind1\" ind2=\"$ind2\">\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>)
--
1.6.2.5
More information about the Koha-patches
mailing list