From 995bee72d949daa94ec5c49ecd120aa096efcd1d Mon Sep 17 00:00:00 2001
From: Jared Camins-Esakov <jcamins@cpbibliography.com>
Date: Tue, 13 Nov 2012 11:02:24 -0500
Subject: [PATCH] Bug 9070: authority searches in auth_finder error out

GetAuthType returns a hash and not a reference to a hash. When you try
to treat a regular hash like a reference, as is the case in auth_finder
when using authority records imported into Koha from elsewhere, bad
things happen.

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.
---
 C4/AuthoritiesMarc.pm |   10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm
index db340ba..8695a2e 100644
--- a/C4/AuthoritiesMarc.pm
+++ b/C4/AuthoritiesMarc.pm
@@ -358,10 +358,12 @@ sub SearchAuthorities {
                         $reported_tag .= '$' . $_->[0] . $_->[1];
                     }
                 }
-                my $thisauthtype = GetAuthType(GetAuthTypeCode($authid));
-                $thisauthtype |= GetAuthType($authtypecode) if $authtypecode;
-                $newline{authtype}     = defined ($thisauthtype) ?
-                                            $thisauthtype->{'authtypetext'} : '';
+                my %thisauthtype = GetAuthType(GetAuthTypeCode($authid));
+                unless (defined %thisauthtype) {
+                    %thisauthtype = GetAuthType($authtypecode) if $authtypecode;
+                }
+                $newline{authtype}     = defined (%thisauthtype) ?
+                                            $thisauthtype{'authtypetext'} : '';
                 $newline{summary}      = $summary;
                 $newline{even}         = $counter % 2;
                 $newline{reported_tag} = $reported_tag;
-- 
1.7.9.5