From 4c7bd247ef456190199f941f5a4479e948341d70 Mon Sep 17 00:00:00 2001 From: Bernardo Gonzalez Kriegel Date: Thu, 21 May 2015 14:00:05 -0300 Subject: [PATCH] Bug 14245: Problems with RIS export in unimarc MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Variable $itype is used an all C4/Ris.pm to switch between marc falvors, but is local and not passed along as argument. As a quick solution, is defined as global To test: 1) On UNIMARC setup, export a record as RIS, check that author (and other fields) are displayed incorrectly 2) Apply the patch 3) Export again, improved results 4) Run t/Ris.t There are other problems in this script, needs maintenance (e.g. no Modern::Perl friendly) Signed-off-by: Victor do Rosário Signed-off-by: Jonathan Druart Signed-off-by: Tomas Cohen Arazi (cherry picked from commit e15621fee2693059cce67882691ad8eae9a5c9b7) Signed-off-by: Chris Cormack --- C4/Ris.pm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/C4/Ris.pm b/C4/Ris.pm index 0727bf9d9c..c18248a598 100644 --- a/C4/Ris.pm +++ b/C4/Ris.pm @@ -87,12 +87,14 @@ C<$record> - a MARC::Record object =cut +my $intype; + sub marc2ris { my ($record) = @_; my $output; my $marcflavour = C4::Context->preference("marcflavour"); - my $intype = lc($marcflavour); + $intype = lc($marcflavour); my $marcprint = 0; # Debug flag; # Let's redirect stdout @@ -409,7 +411,7 @@ sub normalize_author { ## we currently ignore subfield c until someone complains if (length($rawauthorb) > 0) { - return join ",", ($rawauthora, $rawauthorb); + return join ", ", ($rawauthora, $rawauthorb); } else { return $rawauthora; @@ -448,7 +450,7 @@ sub get_author { normalize_author($authorname, $authorfield->subfield('b'), $authorfield->subfield('c'), $authorfield->indicator("$indicator")); } else { - normalize_author($authorfield->subfield('a'), $authorfield->subfield('b'), $authorfield->subfield('c'), $authorfield->indicator("$indicator")); + normalize_author($authorfield->subfield('a') // '', $authorfield->subfield('b') // '', $authorfield->subfield('c') // '', $authorfield->indicator("$indicator")); } } -- 2.39.5