summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Wehner <martin.wehner@gmail.com>2007-07-02 21:48:53 +0000
committerMartin Wehner <mwehner@src.gnome.org>2007-07-02 21:48:53 +0000
commit955eb918c1c362e8098155a2c2a49ca130669179 (patch)
tree81624e5a6817e3da9d6e4c3cd6d4766e55dea12e
parente961d1b6bed0fba0be5076708c05f3ecf6a49086 (diff)
downloadnautilus-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--ChangeLog8
-rw-r--r--libnautilus-private/nautilus-search-engine-simple.c12
2 files changed, 16 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 273c5b11f..08cc7b660 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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) {