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: Victor do Rosário <jvr@fct.unl.pt>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@unc.edu.ar>
This commit is contained in:
Bernardo Gonzalez Kriegel 2015-05-21 14:00:05 -03:00 committed by Tomas Cohen Arazi
parent a37b3bb7f7
commit e15621fee2

View file

@ -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"));
}
}