(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:
parent
15d95fdd0e
commit
1a4e67c143
|
|
@ -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 {
|
||||
|
|
|
|||
Loading…
Reference in New Issue