[rygel] core,tracker: Case-insensitive string comparisons



commit 197a0ef4b35fd527f39314e7b8c213444fa94393
Author: Zeeshan Ali (Khattak) <zeeshanak gnome org>
Date:   Sun Aug 22 02:08:15 2010 +0300

    core,tracker: Case-insensitive string comparisons
    
    String comparisons must be case-insensitive in searches.

 .../tracker/rygel-tracker-search-container.vala    |    2 +-
 src/rygel/rygel-relational-expression.vala         |    9 ++++++---
 2 files changed, 7 insertions(+), 4 deletions(-)
---
diff --git a/src/plugins/tracker/rygel-tracker-search-container.vala b/src/plugins/tracker/rygel-tracker-search-container.vala
index 52fcde3..537af49 100644
--- a/src/plugins/tracker/rygel-tracker-search-container.vala
+++ b/src/plugins/tracker/rygel-tracker-search-container.vala
@@ -257,7 +257,7 @@ public class Rygel.Tracker.SearchContainer : Rygel.MediaContainer {
                 // We need to escape this twice for Tracker
                 var regex = this.escape_string (Regex.escape_string (value));
 
-                filter = "regex(" + variable + ", \"" + regex + "\")";
+                filter = "regex(" + variable + ", \"" + regex + "\", \"i\")";
                 break;
         }
 
diff --git a/src/rygel/rygel-relational-expression.vala b/src/rygel/rygel-relational-expression.vala
index f1a00c2..90a5d1e 100644
--- a/src/rygel/rygel-relational-expression.vala
+++ b/src/rygel/rygel-relational-expression.vala
@@ -77,6 +77,9 @@ public class Rygel.RelationalExpression :
     }
 
     public bool compare_string (string? str) {
+        var up_operand2 = this.operand2.up ();
+        var up_str = str.up ();
+
         switch (this.op) {
         case SearchCriteriaOp.EXISTS:
             if (this.operand2 == "true") {
@@ -85,11 +88,11 @@ public class Rygel.RelationalExpression :
                 return str == null;
             }
         case SearchCriteriaOp.EQ:
-            return this.operand2 == str;
+            return up_operand2 == up_str;
         case SearchCriteriaOp.CONTAINS:
-            return str.contains (this.operand2);
+            return up_str.contains (up_operand2);
         case SearchCriteriaOp.DERIVED_FROM:
-            return str.has_prefix (this.operand2);
+            return up_str.has_prefix (up_operand2);
         default:
             return false;
         }



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