diff options
Diffstat (limited to 'libnautilus-private')
-rw-r--r-- | libnautilus-private/nautilus-search-engine-model.c | 17 | ||||
-rw-r--r-- | libnautilus-private/nautilus-search-engine-simple.c | 25 | ||||
-rw-r--r-- | libnautilus-private/nautilus-ui-utilities.c | 12 | ||||
-rw-r--r-- | libnautilus-private/nautilus-ui-utilities.h | 2 |
4 files changed, 28 insertions, 28 deletions
diff --git a/libnautilus-private/nautilus-search-engine-model.c b/libnautilus-private/nautilus-search-engine-model.c index 7f44ecbfd..73fc6292b 100644 --- a/libnautilus-private/nautilus-search-engine-model.c +++ b/libnautilus-private/nautilus-search-engine-model.c @@ -28,6 +28,7 @@ #include "nautilus-directory.h" #include "nautilus-directory-private.h" #include "nautilus-file.h" +#include "nautilus-ui-utilities.h" #include <string.h> #include <glib.h> @@ -88,24 +89,12 @@ emit_finished_idle_cb (gpointer user_data) } static gchar * -prepare_string_for_compare (const gchar *string) -{ - gchar *normalized, *res; - - normalized = g_utf8_normalize (string, -1, G_NORMALIZE_NFD); - res = g_utf8_strdown (normalized, -1); - g_free (normalized); - - return res; -} - -static gchar * prepare_pattern_for_comparison (NautilusSearchEngineModel *model) { gchar *text, *prepared, *pattern; text = nautilus_query_get_text (model->details->query); - prepared = prepare_string_for_compare (text); + prepared = nautilus_search_prepare_string_for_compare (text); pattern = g_strdup_printf ("*%s*", prepared); g_free (prepared); @@ -132,7 +121,7 @@ model_directory_ready_cb (NautilusDirectory *directory, for (l = files; l != NULL; l = l->next) { file = l->data; display_name = nautilus_file_get_display_name (file); - prepared = prepare_string_for_compare (display_name); + prepared = nautilus_search_prepare_string_for_compare (display_name); if (g_pattern_match_simple (pattern, prepared)) { uri = nautilus_file_get_uri (file); diff --git a/libnautilus-private/nautilus-search-engine-simple.c b/libnautilus-private/nautilus-search-engine-simple.c index 5571a02cf..8629a8a40 100644 --- a/libnautilus-private/nautilus-search-engine-simple.c +++ b/libnautilus-private/nautilus-search-engine-simple.c @@ -25,6 +25,7 @@ #include "nautilus-search-hit.h" #include "nautilus-search-provider.h" #include "nautilus-search-engine-simple.h" +#include "nautilus-ui-utilities.h" #include <string.h> #include <glib.h> @@ -94,7 +95,7 @@ search_thread_data_new (NautilusSearchEngineSimple *engine, NautilusQuery *query) { SearchThreadData *data; - char *text, *lower, *normalized, *uri; + char *text, *prepared, *uri; GFile *location; data = g_new0 (SearchThreadData, 1); @@ -114,12 +115,10 @@ search_thread_data_new (NautilusSearchEngineSimple *engine, g_queue_push_tail (data->directories, location); text = nautilus_query_get_text (query); - normalized = g_utf8_normalize (text, -1, G_NORMALIZE_NFD); - lower = g_utf8_strdown (normalized, -1); - data->words = g_strsplit (lower, " ", -1); + prepared = nautilus_search_prepare_string_for_compare (text); + data->words = g_strsplit (prepared, " ", -1); g_free (text); - g_free (lower); - g_free (normalized); + g_free (prepared); data->mime_types = nautilus_query_get_mime_types (query); @@ -214,7 +213,7 @@ visit_directory (GFile *dir, SearchThreadData *data) GFileInfo *info; GFile *child; const char *mime_type, *display_name; - char *lower_name, *normalized; + char *prepared; gboolean found; int i; GList *l; @@ -239,19 +238,17 @@ visit_directory (GFile *dir, SearchThreadData *data) if (display_name == NULL) { goto next; } - - normalized = g_utf8_normalize (display_name, -1, G_NORMALIZE_NFD); - lower_name = g_utf8_strdown (normalized, -1); - g_free (normalized); - + + prepared = nautilus_search_prepare_string_for_compare (display_name); + found = TRUE; for (i = 0; data->words[i] != NULL; i++) { - if (strstr (lower_name, data->words[i]) == NULL) { + if (strstr (prepared, data->words[i]) == NULL) { found = FALSE; break; } } - g_free (lower_name); + g_free (prepared); if (found && data->mime_types) { mime_type = g_file_info_get_content_type (info); diff --git a/libnautilus-private/nautilus-ui-utilities.c b/libnautilus-private/nautilus-ui-utilities.c index 539ddca70..b70a01f87 100644 --- a/libnautilus-private/nautilus-ui-utilities.c +++ b/libnautilus-private/nautilus-ui-utilities.c @@ -61,6 +61,18 @@ nautilus_ui_prepare_merge_ui (GtkUIManager *ui_manager, g_object_unref (*action_group); /* owned by ui manager */ } +gchar * +nautilus_search_prepare_string_for_compare (const gchar *string) +{ + gchar *normalized, *res; + + normalized = g_utf8_normalize (string, -1, G_NORMALIZE_NFD); + res = g_utf8_strdown (normalized, -1); + g_free (normalized); + + return res; +} + static void extension_action_callback (GtkAction *action, gpointer callback_data) diff --git a/libnautilus-private/nautilus-ui-utilities.h b/libnautilus-private/nautilus-ui-utilities.h index 12e2e5e5a..9020a1251 100644 --- a/libnautilus-private/nautilus-ui-utilities.h +++ b/libnautilus-private/nautilus-ui-utilities.h @@ -36,6 +36,8 @@ void nautilus_ui_prepare_merge_ui (GtkUIManager *ui_manage GtkActionGroup **action_group); GtkAction * nautilus_action_from_menu_item (NautilusMenuItem *item); +gchar * nautilus_search_prepare_string_for_compare (const gchar *string); + GdkPixbuf * nautilus_ui_get_menu_icon (const char *icon_name); char * nautilus_escape_action_name (const char *action_name, |