From: Nahuel ANGELINETTI Date: Mon, 4 May 2009 09:22:15 +0000 (+0200) Subject: (bug #3183) fix the SetMarcUnicodeFlag function X-Git-Tag: ontop~65 X-Git-Url: http://git.rot13.org/?a=commitdiff_plain;h=1a4e67c143e427ac922ff0160c59839b0b2a3eed;p=koha.git (bug #3183) fix the SetMarcUnicodeFlag function 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". Signed-off-by: Galen Charlton --- diff --git a/C4/Charset.pm b/C4/Charset.pm index 5ca40daf82..001cf01001 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); } } else {