[Koha-patches] [PATCH] (bug #3183) fix the SetMarcUnicodeFlag function

Nahuel ANGELINETTI nahuel.angelinetti at biblibre.com
Mon May 4 11:15:26 CEST 2009


This patch fix the funciton SetMarcUnicodeFlag for UNIMARC support, now the function will fix the length of the field, and set encoding as "50  " instead of "5050".
---
 C4/Charset.pm |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/C4/Charset.pm b/C4/Charset.pm
index 4b73ceb..06c2d93 100644
--- a/C4/Charset.pm
+++ b/C4/Charset.pm
@@ -238,7 +238,13 @@ sub SetMarcUnicodeFlag {
     } elsif ($marc_flavour eq "UNIMARC") {
         if (my $field = $marc_record->field('100')) {
             my $sfa = $field->subfield('a');
-            substr($sfa, 26, 4) = '5050';
+            
+            my $subflength = 36;
+            # fix the length of the field
+            $sfa = substr $sfa, 0, $subflength if (length($sfa) > $subflength);
+            $sfa = sprintf( "%-*s", 35, $sfa ) if (length($sfa) < $subflength);
+            
+            substr($sfa, 26, 4) = '50  ';
             $field->update('a' => $sfa);
         }
     }
-- 
1.6.0.4




More information about the Koha-patches mailing list