[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