(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 <galen.charlton@liblime.com>
This commit is contained in:
Nahuel ANGELINETTI 2009-05-04 11:22:15 +02:00 committed by Galen Charlton
parent 15d95fdd0e
commit 1a4e67c143
1 changed files with 7 additions and 1 deletions

View File

@ -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 {