[open-ils-commits] r17852 - branches/rel_1_6_1/Open-ILS/src/perlmods/OpenILS/Application/Search (miker)

svn at svn.open-ils.org svn at svn.open-ils.org
Mon Sep 20 18:10:51 EDT 2010


Author: miker
Date: 2010-09-20 18:10:44 -0400 (Mon, 20 Sep 2010)
New Revision: 17852

Modified:
   branches/rel_1_6_1/Open-ILS/src/perlmods/OpenILS/Application/Search/Biblio.pm
Log:
Backport r17847 from Dan Scott: protect non-search, colon-delimited strings from breaking searches

Modified: branches/rel_1_6_1/Open-ILS/src/perlmods/OpenILS/Application/Search/Biblio.pm
===================================================================
--- branches/rel_1_6_1/Open-ILS/src/perlmods/OpenILS/Application/Search/Biblio.pm	2010-09-20 20:59:36 UTC (rev 17851)
+++ branches/rel_1_6_1/Open-ILS/src/perlmods/OpenILS/Application/Search/Biblio.pm	2010-09-20 22:10:44 UTC (rev 17852)
@@ -553,12 +553,13 @@
     $query =~ s/^\s+//go;
 
     # convert convenience classes (e.g. kw for keyword) to the full class name
-    $query =~ s/kw(:|\|)/keyword$1/go;
-    $query =~ s/ti(:|\|)/title$1/go;
-    $query =~ s/au(:|\|)/author$1/go;
-    $query =~ s/su(:|\|)/subject$1/go;
-    $query =~ s/se(:|\|)/series$1/go;
-    $query =~ s/name(:|\|)/author$1/og;
+    # ensure that the convenience class isn't part of a word (e.g. 'playhouse')
+    $query =~ s/(^|\s)kw(:|\|)/$1keyword$2/go;
+    $query =~ s/(^|\s)ti(:|\|)/$1title$2/go;
+    $query =~ s/(^|\s)au(:|\|)/$1author$2/go;
+    $query =~ s/(^|\s)su(:|\|)/$1subject$2/go;
+    $query =~ s/(^|\s)se(:|\|)/$1series$2/go;
+    $query =~ s/(^|\s)name(:|\|)/$1author$2/og;
 
     $logger->debug("cleansed query string => $query");
     my $search = $arghash->{searches} = {};



More information about the open-ils-commits mailing list