[grilo-plugins] tracker: escape search strings



commit 3155abd2c38a7ff51fed43d35c8c71ba432f6118
Author: Juan A. Suarez Romero <jasuarez igalia com>
Date:   Sat Jul 26 14:59:31 2014 +0000

    tracker: escape search strings
    
    Use Tracker functions to perform the escape, because it is designed to
    hand-craft later a SPARQL query with the escaped string.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=730399

 src/tracker/grl-tracker-source-api.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)
---
diff --git a/src/tracker/grl-tracker-source-api.c b/src/tracker/grl-tracker-source-api.c
index ccd2250..ff863c0 100644
--- a/src/tracker/grl-tracker-source-api.c
+++ b/src/tracker/grl-tracker-source-api.c
@@ -77,7 +77,7 @@ GRL_LOG_DOMAIN_STATIC(tracker_source_result_log_domain);
   "{ "                                          \
   "%s "                                         \
   "?urn tracker:available ?tr . "               \
-  "?urn fts:match '*%s*' . "                    \
+  "?urn fts:match \"%s\" . "                    \
   "%s "                                         \
   "} "                                          \
   "ORDER BY DESC(nfo:fileLastModified(?urn)) "  \
@@ -802,6 +802,7 @@ grl_tracker_source_search (GrlSource *source, GrlSourceSearchSpec *ss)
   gchar                *sparql_select;
   gchar                *sparql_final;
   gchar                *sparql_type_filter;
+  gchar                *escaped_text;
   GrlTrackerOp         *os;
   gint count = grl_operation_options_get_count (ss->options);
   guint skip = grl_operation_options_get_skip (ss->options);
@@ -817,9 +818,11 @@ grl_tracker_source_search (GrlSource *source, GrlSourceSearchSpec *ss)
                                     constraint, sparql_type_filter,
                                     skip, count);
   } else {
+    escaped_text = tracker_sparql_escape_string (ss->text);
     sparql_final = g_strdup_printf (TRACKER_SEARCH_REQUEST, sparql_select,
-                                    sparql_type_filter, ss->text,
+                                    sparql_type_filter, escaped_text,
                                     constraint, skip, count);
+    g_free (escaped_text);
   }
 
   GRL_IDEBUG ("\tselect: '%s'", sparql_final);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]