Bug 9070: [SIGNED-OFF] authority searches in auth_finder error out
authorJared Camins-Esakov <jcamins@cpbibliography.com>
Tue, 13 Nov 2012 16:02:24 +0000 (11:02 -0500)
committerJared Camins-Esakov <jcamins@cpbibliography.com>
Tue, 20 Nov 2012 19:09:02 +0000 (14:09 -0500)
When using authority records imported into Koha from elsewhere, you
can get an error like:
    Can't use string ("HASH(0xbc6c{30)") as a HASH ref while "strict refs" in use at /usr/share/koha/lib/C4/AuthoritiesMarc.pm line 363.
in authorities/auth_finder.pl. This patch fixes that error.

To test:
1) You will need records imported from elsewhere.
2) Use the authority control plugin in a bib record to search for one of
   those headings.
3) Observe you get a nasty error.
4) Apply patch.
5) Repeat step 2.
6) Observe the error is gone.
7) Sign off.

Signed-off-by: Magnus Enger <magnus@enger.priv.no>
Works as advertised. No warning about "defined(%hash) is deprecated"
under perl v5.10.1.

Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
C4/AuthoritiesMarc.pm

index db340ba..c8183c1 100644 (file)
@@ -359,8 +359,10 @@ sub SearchAuthorities {
                     }
                 }
                 my $thisauthtype = GetAuthType(GetAuthTypeCode($authid));
-                $thisauthtype |= GetAuthType($authtypecode) if $authtypecode;
-                $newline{authtype}     = defined ($thisauthtype) ?
+                unless (defined $thisauthtype) {
+                    $thisauthtype = GetAuthType($authtypecode) if $authtypecode;
+                }
+                $newline{authtype}     = defined($thisauthtype) ?
                                             $thisauthtype->{'authtypetext'} : '';
                 $newline{summary}      = $summary;
                 $newline{even}         = $counter % 2;