Bug 18152 : fix unimarc label in SetMarcUnicodeFlag
authorStephane Delaune <stephane.delaune@biblibre.com>
Wed, 22 Feb 2017 11:25:33 +0000 (12:25 +0100)
committerJulian Maurice <julian.maurice@biblibre.com>
Mon, 22 May 2017 09:30:19 +0000 (11:30 +0200)
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 <alexbuckley@catalyst.net.nz>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
(cherry picked from commit bf551a07222a7b9beffd7ca6cba38c675aa3ab28)
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
(cherry picked from commit a7c25ccdd52cc3ae467651cadd3b4b89e5f69ff8)
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>

C4/Charset.pm

index cd7a61f..e46d174 100644 (file)
@@ -326,7 +326,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';