[gedit] highlight-mode-selector: normalize/casefold search string



commit 2e27965ef858bb355b97aabe73e4978961d40506
Author: Ray Strode <rstrode redhat com>
Date:   Mon Aug 10 19:26:51 2015 -0400

    highlight-mode-selector: normalize/casefold search string
    
    This is like the previous commit, but before the highlight
    mode selector.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=753481

 gedit/gedit-highlight-mode-selector.c |   21 ++++++++++++++-------
 1 files changed, 14 insertions(+), 7 deletions(-)
---
diff --git a/gedit/gedit-highlight-mode-selector.c b/gedit/gedit-highlight-mode-selector.c
index 5f9e3de..6e91710 100644
--- a/gedit/gedit-highlight-mode-selector.c
+++ b/gedit/gedit-highlight-mode-selector.c
@@ -91,8 +91,10 @@ visible_func (GtkTreeModel               *model,
 {
        const gchar *entry_text;
        gchar *name;
-       gchar *name_lower;
-       gchar *text_lower;
+       gchar *name_normalized;
+       gchar *name_casefolded;
+       gchar *text_normalized;
+       gchar *text_casefolded;
        gboolean visible = FALSE;
 
        entry_text = gtk_entry_get_text (GTK_ENTRY (selector->entry));
@@ -104,18 +106,23 @@ visible_func (GtkTreeModel               *model,
 
        gtk_tree_model_get (model, iter, COLUMN_NAME, &name, -1);
 
-       name_lower = g_utf8_strdown (name, -1);
+       name_normalized = g_utf8_normalize (name, -1, G_NORMALIZE_ALL);
        g_free (name);
 
-       text_lower = g_utf8_strdown (entry_text, -1);
+       name_casefolded = g_utf8_casefold (name_normalized, -1);
+       g_free (name_normalized);
 
-       if (strstr (name_lower, text_lower) != NULL)
+       text_normalized = g_utf8_normalize (entry_text, -1, G_NORMALIZE_ALL);
+       text_casefolded = g_utf8_casefold (text_normalized, -1);
+       g_free (text_normalized);
+
+       if (strstr (name_casefolded, text_casefolded) != NULL)
        {
                visible = TRUE;
        }
 
-       g_free (name_lower);
-       g_free (text_lower);
+       g_free (name_casefolded);
+       g_free (text_casefolded);
 
        return visible;
 }


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