From 955eb918c1c362e8098155a2c2a49ca130669179 Mon Sep 17 00:00:00 2001 From: Martin Wehner Date: Mon, 2 Jul 2007 21:48:53 +0000 Subject: Normalize unicode search strings and use g_utf8_strdown to lowercase them. 2007-07-02 Martin Wehner * libnautilus-private/nautilus-search-engine-simple.c: (search_thread_data_new), (search_visit_func): Normalize unicode search strings and use g_utf8_strdown to lowercase them. (#421486/#421512) Patch from Denis Jacquerye svn path=/branches/gnome-2-18/; revision=12975 --- ChangeLog | 8 ++++++++ libnautilus-private/nautilus-search-engine-simple.c | 12 ++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 273c5b11f..08cc7b660 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2007-07-02 Martin Wehner + + * libnautilus-private/nautilus-search-engine-simple.c: + (search_thread_data_new), (search_visit_func): + Normalize unicode search strings and use g_utf8_strdown to + lowercase them. (#421486/#421512) + Patch from Denis Jacquerye + 2007-07-02 Martin Wehner * configure.in: diff --git a/libnautilus-private/nautilus-search-engine-simple.c b/libnautilus-private/nautilus-search-engine-simple.c index 7e5d5f314..83ebfb606 100644 --- a/libnautilus-private/nautilus-search-engine-simple.c +++ b/libnautilus-private/nautilus-search-engine-simple.c @@ -88,7 +88,7 @@ search_thread_data_new (NautilusSearchEngineSimple *engine, NautilusQuery *query) { SearchThreadData *data; - char *text, *lower, *uri; + char *text, *lower, *normalized, *uri; data = g_new0 (SearchThreadData, 1); @@ -103,10 +103,12 @@ search_thread_data_new (NautilusSearchEngineSimple *engine, } text = nautilus_query_get_text (query); - lower = g_ascii_strdown (text, -1); + normalized = g_utf8_normalize (text, -1, G_NORMALIZE_NFD); + lower = g_utf8_strdown (normalized, -1); data->words = g_strsplit (lower, " ", -1); g_free (text); g_free (lower); + g_free (normalized); data->mime_types = nautilus_query_get_mime_types (query); @@ -188,7 +190,7 @@ search_visit_func (const gchar *rel_path, { SearchThreadData *data; int i; - char *lower_name; + char *lower_name, *normalized; GnomeVFSURI *uri; gboolean hit; GList *l; @@ -211,7 +213,8 @@ search_visit_func (const gchar *rel_path, hit = FALSE; if (!is_hidden) { - lower_name = g_ascii_strdown (info->name, -1); + normalized = g_utf8_normalize (info->name, -1, G_NORMALIZE_NFD); + lower_name = g_utf8_strdown (normalized, -1); hit = TRUE; for (i = 0; data->words[i] != NULL; i++) { @@ -221,6 +224,7 @@ search_visit_func (const gchar *rel_path, } } g_free (lower_name); + g_free (normalized); } if (hit && data->mime_types != NULL) { -- cgit v1.2.1