diff options
author | Martin Wehner <martin.wehner@gmail.com> | 2007-07-02 21:48:53 +0000 |
---|---|---|
committer | Martin Wehner <mwehner@src.gnome.org> | 2007-07-02 21:48:53 +0000 |
commit | 955eb918c1c362e8098155a2c2a49ca130669179 (patch) | |
tree | 81624e5a6817e3da9d6e4c3cd6d4766e55dea12e | |
parent | e961d1b6bed0fba0be5076708c05f3ecf6a49086 (diff) | |
download | nautilus-955eb918c1c362e8098155a2c2a49ca130669179.tar.gz |
Normalize unicode search strings and use g_utf8_strdown to lowercase them.
2007-07-02 Martin Wehner <martin.wehner@gmail.com>
* 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 <moyogo@gmail.com>
svn path=/branches/gnome-2-18/; revision=12975
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | libnautilus-private/nautilus-search-engine-simple.c | 12 |
2 files changed, 16 insertions, 4 deletions
@@ -1,5 +1,13 @@ 2007-07-02 Martin Wehner <martin.wehner@gmail.com> + * 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 <moyogo@gmail.com> + +2007-07-02 Martin Wehner <martin.wehner@gmail.com> + * configure.in: Make libexif dependency optional again. (#165773) 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) { |