Bug 14200: GetNormalizedISBN failing to normalize valid ISBNs in some cases
authorKyle M Hall <kyle@bywatersolutions.com>
Thu, 14 May 2015 10:20:00 +0000 (06:20 -0400)
committerTomas Cohen Arazi <tomascohen@gmail.com>
Tue, 19 May 2015 12:45:38 +0000 (09:45 -0300)
For some reason the regular expression used to split the multiple ISBN
fields can fail which keeps Business::ISBN from being able to parse out
and return a valid isbn. Using split() instead of the regex fixes the
issue.

Test Plan:
1) Apply the unit test patch first
2) prove t/Koha.t
3) Note the failures
4) Apply the second patch
5) prove t/Koha.t
6) Note all tests pass

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Karen Bryant <kbryant@ccpl-fl.net>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>

C4/Koha.pm

index cb0ed5a..4f54a3b 100644 (file)
@@ -1487,7 +1487,7 @@ sub GetNormalizedISBN {
     if ($isbn) {
         # Koha attempts to store multiple ISBNs in biblioitems.isbn, separated by " | "
         # anything after " | " should be removed, along with the delimiter
-        $isbn =~ s/(.*)( \| )(.*)/$1/;
+        ($isbn) = split(/\|/, $isbn );
         return _isbn_cleanup($isbn);
     }
     return unless $record;