From 74778e654d21e027df0177dfe942b75566fa8475 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 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: Jonathan Druart --- C4/Ris.pm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/C4/Ris.pm b/C4/Ris.pm index 086486f..db8ca58 100644 --- a/C4/Ris.pm +++ b/C4/Ris.pm @@ -94,12 +94,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 @@ -457,7 +459,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; @@ -496,7 +498,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.1.0