From: Jared Camins-Esakov Date: Fri, 7 Sep 2012 14:58:53 +0000 (-0400) Subject: Bug 8447: Make sure we have enough subfields for broader_headings X-Git-Url: http://git.rot13.org/?a=commitdiff_plain;h=8a718d6c9b0ea4f23e843ba6878159385a2480bb;p=koha.git Bug 8447: Make sure we have enough subfields for broader_headings Thanks to wajasu for providing the debugging information, as I cannot seem to duplicate the problem, even seeing where it could come from. Fix corrects cases where upon save, a software error complaing about indicators being wrong as a side effect of a poorly autogenerated biblio/authority record. Behvior with this fix causes existing bilio data to to be preserved while linking to the authority via subtag 9. Signed-off-by: wajasu Signed-off-by: Paul Poulain --- diff --git a/C4/Linker/Default.pm b/C4/Linker/Default.pm index 653dabd7c6..445b408702 100644 --- a/C4/Linker/Default.pm +++ b/C4/Linker/Default.pm @@ -56,17 +56,16 @@ sub get_link { if ( !defined $authid && $self->{'broader_headings'} ) { my $field = $heading->field(); - my @subfields = $field->subfields(); + my @subfields = grep { $_->[0] ne '9' } $field->subfields(); if ( scalar @subfields > 1 ) { pop @subfields; - $field->replace_with( + $field = MARC::Field->new( $field->tag, $field->indicator(1), $field->indicator(2), - map { $_[0] => $_[1] } @subfields - ) - ); + map { $_->[0] => $_->[1] } @subfields + ); ( $authid, $fuzzy ) = $self->get_link( C4::Heading->new_from_bib_field($field), $behavior );