From 9959ae2b9fb1bbbcc4ae1b9aa7e909fbfe4cfb49 Mon Sep 17 00:00:00 2001 From: Stephane Delaune Date: Wed, 22 Feb 2017 12:25:33 +0100 Subject: [PATCH] Bug 18152 : fix unimarc label in SetMarcUnicodeFlag The standard UNIMARC requires than the 9th character (starting from 0) in labels must be blank (while it may be 'a' in marc21) the problem is that C4::Charset::SetMarcUnicodeFlag (called in particular when we import a record) always add 'a' char in the 9th label'pos whereas it should do it just for MARC21 and NORMARC (not for UNIMARC) : C4::Charset::SetMarcUnicodeFlag add 'a' char in the 9th label character for MARC21 and NORMARC (it's normal), but just before doing this it call "$marc_record->encoding('UTF-8')" which is a MARC::Record function which, when called with 'UTF-8' parameter, do only one thing : add 'a' char in the 9th label character This patch only removes this incorrect function call, so, when we import a bib record in UNIMARC : it no longer adds erroneous character (this does not change anything for MARC21 and NORMARC because SetMarcUnicodeFlag explicitly adds 'a' char in the 9th label for them) Signed-off-by: Alex Buckley Signed-off-by: Jonathan Druart --- C4/Charset.pm | 1 - 1 file changed, 1 deletion(-) diff --git a/C4/Charset.pm b/C4/Charset.pm index 4dff14c..906321f 100644 --- a/C4/Charset.pm +++ b/C4/Charset.pm @@ -324,7 +324,6 @@ sub SetMarcUnicodeFlag { my $marc_record = shift; my $marc_flavour = shift; # || C4::Context->preference("marcflavour"); - $marc_record->encoding('UTF-8'); if ($marc_flavour eq 'MARC21' || $marc_flavour eq 'NORMARC') { my $leader = $marc_record->leader(); substr($leader, 9, 1) = 'a'; -- 2.9.3