From ba5ac9af28025e61b820853d480a4f1d4bd56c07 Mon Sep 17 00:00:00 2001 From: Brian Harrington Date: Wed, 29 Apr 2009 13:37:06 -0400 Subject: [PATCH] Revisions to auto-generated authorities patch It turns out that the "blank" record created by MARC::Record->new() has a leader, so now I explicitly create one in addbiblio.pl. I also realized I can't count. :-) Modified per comments by Joe and Galen to keep SetMarcUnicodeFlag and move it and the leader set to earlier in the process. Signed-off-by: Galen Charlton Signed-off-by: Henri-Damien LAURENT --- cataloguing/addbiblio.pl | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/cataloguing/addbiblio.pl b/cataloguing/addbiblio.pl index 63a1113c46..4ccf3b3ef1 100755 --- a/cataloguing/addbiblio.pl +++ b/cataloguing/addbiblio.pl @@ -766,6 +766,10 @@ AND (authtypecode IS NOT NULL AND authtypecode<>\"\")|); my $authtypedata=GetAuthType($data->{authtypecode}); next unless $authtypedata; my $marcrecordauth=MARC::Record->new(); + if (C4::Context->preference('marcflavour') eq 'MARC21') { + $marcrecordauth->leader(' nz a22 o 4500'); + SetMarcUnicodeFlag($marcrecordauth, 'MARC21'); + } my $authfield=MARC::Field->new($authtypedata->{auth_tag_to_report},'','',"a"=>"".$field->subfield('a')); map { $authfield->add_subfields($_->[0]=>$_->[1]) if ($_->[0]=~/[A-z]/ && $_->[0] ne "a" )} $field->subfields(); $marcrecordauth->insert_fields_ordered($authfield); @@ -776,14 +780,8 @@ AND (authtypecode IS NOT NULL AND authtypecode<>\"\")|); # FIXME: AddAuthority() instead should simply explicitly require that the MARC::Record # use UTF-8, but as of 2008-08-05, did not want to introduce that kind # of change to a core API just before the 3.0 release. - # - # This isn't needed if we set the UTF flag in the leader below - #if (C4::Context->preference('marcflavour') eq 'MARC21') { - # SetMarcUnicodeFlag($marcrecordauth, 'MARC21'); - # } if (C4::Context->preference('marcflavour') eq 'MARC21') { - $marcrecordauth->leader(' nz a22 o 4500'); $marcrecordauth->insert_fields_ordered(MARC::Field->new('667','','','a'=>"Machine generated authority record.")); my $cite = $record->author() . ", " . $record->title_proper() . ", " . $record->publication_date() . " "; $cite =~ s/^[\s\,]*//; -- 2.39.5