[rygel] tracker: SearchContainer.escape_string() -> Query



commit 76eaf6cb879e74b64ed4d7d3ad82097c42d61af6
Author: Sunil Mohan Adapa <sunil medhas org>
Date:   Thu Dec 9 01:01:36 2010 +0530

    tracker: SearchContainer.escape_string() -> Query
    
    The escape_string utility function meant for escaping strings to be
    used in SPARQL query more correctly belongs to the Query class that
    deals with SPARQL query generation.

 src/plugins/tracker/rygel-tracker-query.vala       |   54 +++++++++++++++++++-
 .../tracker/rygel-tracker-search-container.vala    |   54 +-------------------
 2 files changed, 54 insertions(+), 54 deletions(-)
---
diff --git a/src/plugins/tracker/rygel-tracker-query.vala b/src/plugins/tracker/rygel-tracker-query.vala
index 81cb22e..29bd80f 100644
--- a/src/plugins/tracker/rygel-tracker-query.vala
+++ b/src/plugins/tracker/rygel-tracker-query.vala
@@ -1,7 +1,8 @@
 /*
  * Copyright (C) 2008 Nokia Corporation.
  *
- * Author: Zeeshan Ali <zeenix gmail com>
+ * Authors: Zeeshan Ali <zeenix gmail com>
+ *          Ivan Frade <ivan frade nokia com>
  *
  * This file is part of Rygel.
  *
@@ -40,4 +41,55 @@ public abstract class Rygel.Tracker.Query {
     public virtual string to_string () {
         return this.triplets.serialize ();
     }
+
+    /**
+     * tracker_sparql_escape_string: Escapes a string so that it can be
+     * used in a SPARQL query. Copied from Tracker project.
+     *
+     * @param literal A string to escape
+     *
+     * @return A newly-allocated string with the escaped version of
+     * literal. The returned string should be freed with g_free() when no
+     * longer needed.
+     */
+    public static string escape_string (string literal) {
+        StringBuilder str = new StringBuilder ();
+        char *p = literal;
+
+        while (*p != '\0') {
+            size_t len = Posix.strcspn ((string) p, "\t\n\r\b\f\"\\");
+            str.append_len ((string) p, (long) len);
+            p += len;
+
+            switch (*p) {
+                case '\t':
+                    str.append ("\\t");
+                    break;
+                case '\n':
+                    str.append ("\\n");
+                    break;
+                case '\r':
+                    str.append ("\\r");
+                    break;
+                case '\b':
+                    str.append ("\\b");
+                    break;
+                case '\f':
+                    str.append ("\\f");
+                    break;
+                case '"':
+                    str.append ("\\\"");
+                    break;
+                case '\\':
+                    str.append ("\\\\");
+                    break;
+                default:
+                    continue;
+            }
+
+            p++;
+        }
+
+        return str.str;
+    }
 }
diff --git a/src/plugins/tracker/rygel-tracker-search-container.vala b/src/plugins/tracker/rygel-tracker-search-container.vala
index 7fd6d46..e40947f 100644
--- a/src/plugins/tracker/rygel-tracker-search-container.vala
+++ b/src/plugins/tracker/rygel-tracker-search-container.vala
@@ -4,7 +4,6 @@
  * Copyright (C) 2010 MediaNet Inh.
  *
  * Authors: Zeeshan Ali <zeenix gmail com>
- *          Ivan Frade <ivan frade nokia com>
  *          Sunil Mohan Adapa <sunil medhas org>
  *
  * This file is part of Rygel.
@@ -277,7 +276,7 @@ public class Rygel.Tracker.SearchContainer : Rygel.MediaContainer {
                 break;
             case SearchCriteriaOp.CONTAINS:
                 // We need to escape this twice for Tracker
-                var regex = this.escape_string (Regex.escape_string (value));
+                var regex = Query.escape_string (Regex.escape_string (value));
 
                 filter = "regex(" + variable + ", \"" + regex + "\", \"i\")";
                 break;
@@ -305,56 +304,5 @@ public class Rygel.Tracker.SearchContainer : Rygel.MediaContainer {
 
         return slice;
     }
-
-    /**
-     * tracker_sparql_escape_string:
-     * @literal: a string to escape
-     *
-     * Escapes a string so that it can be used in a SPARQL query. Copied from
-     * Tracker project.
-     *
-     * Returns: a newly-allocated string with the escaped version of @literal.
-     *  The returned string should be freed with g_free() when no longer needed.
-     */
-    private string escape_string (string literal) {
-        StringBuilder str = new StringBuilder ();
-        char *p = literal;
-
-        while (*p != '\0') {
-            size_t len = Posix.strcspn ((string) p, "\t\n\r\b\f\"\\");
-            str.append_len ((string) p, (long) len);
-            p += len;
-
-            switch (*p) {
-                case '\t':
-                    str.append ("\\t");
-                    break;
-                case '\n':
-                    str.append ("\\n");
-                    break;
-                case '\r':
-                    str.append ("\\r");
-                    break;
-                case '\b':
-                    str.append ("\\b");
-                    break;
-                case '\f':
-                    str.append ("\\f");
-                    break;
-                case '"':
-                    str.append ("\\\"");
-                    break;
-                case '\\':
-                    str.append ("\\\\");
-                    break;
-                default:
-                    continue;
-            }
-
-            p++;
-        }
-
-        return str.str;
-    }
 }
 



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