Bug 9239 QA follow-up: escape quotes in searches
authorJared Camins-Esakov <jcamins@cpbibliography.com>
Thu, 14 Mar 2013 14:50:41 +0000 (10:50 -0400)
committerJared Camins-Esakov <jcamins@cpbibliography.com>
Sun, 17 Mar 2013 01:32:35 +0000 (21:32 -0400)
This patch escapes quotes in searches for those rare instances where
there is a literal quote inside a search term.

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
Koha/QueryParser/Driver/PQF/query_plan/node.pm

index 3727e34..2695058 100644 (file)
@@ -54,6 +54,7 @@ sub target_syntax {
     if (@{$self->phrases}) {
         foreach my $phrase (@{$self->phrases}) {
             if ($phrase) {
+                $phrase =~ s/"/\\"/g;
                 $pqf .= ' @or ' x (scalar(@fields) - 1);
                 foreach my $attributes (@fields) {
                     $pqf .= $attributes->{'attr_string'} . ($attributes->{'4'} ? '' : ' @attr 4=1') . ' "' . $phrase . '" ';
@@ -66,6 +67,7 @@ sub target_syntax {
             if (ref($atom)) {
                 $atom_content = $atom->target_syntax($server);
                 if ($atom_content) {
+                    $atom_content =~ s/"/\\"/g;
                     $pqf .= ' @or ' x (scalar(@fields) - 1);
                     foreach my $attributes (@fields) {
                         $attributes->{'attr_string'} ||= '';