[gedit] Move caseless_nmatch to a static function
- From: Paolo Borelli <pborelli src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit] Move caseless_nmatch to a static function
- Date: Sun, 21 Nov 2010 12:02:20 +0000 (UTC)
commit 3d39092b71e1a4aec3dc29ad63d4ed357e5d913d
Author: Paolo Borelli <pborelli gnome org>
Date: Sun Nov 21 12:57:42 2010 +0100
Move caseless_nmatch to a static function
It is only used in one place and we should not stomp on the g_ namespace
gedit/gedit-commands-search.c | 56 +++++++++++++++++++++++++++++++++++-----
gedit/gedit-utils.c | 44 --------------------------------
gedit/gedit-utils.h | 5 ---
3 files changed, 49 insertions(+), 56 deletions(-)
---
diff --git a/gedit/gedit-commands-search.c b/gedit/gedit-commands-search.c
index 58fb40d..04a433d 100644
--- a/gedit/gedit-commands-search.c
+++ b/gedit/gedit-commands-search.c
@@ -309,6 +309,48 @@ get_selected_text (GtkTextBuffer *doc,
return TRUE;
}
+/* n: len of the string in bytes */
+static gboolean
+utf8_caselessnmatch (const char *s1,
+ const char *s2,
+ gssize n1,
+ gssize n2)
+{
+ gchar *casefold;
+ gchar *normalized_s1;
+ gchar *normalized_s2;
+ gint len_s1;
+ gint len_s2;
+ gboolean ret = FALSE;
+
+ g_return_val_if_fail (s1 != NULL, FALSE);
+ g_return_val_if_fail (s2 != NULL, FALSE);
+ g_return_val_if_fail (n1 > 0, FALSE);
+ g_return_val_if_fail (n2 > 0, FALSE);
+
+ casefold = g_utf8_casefold (s1, n1);
+ normalized_s1 = g_utf8_normalize (casefold, -1, G_NORMALIZE_NFD);
+ g_free (casefold);
+
+ casefold = g_utf8_casefold (s2, n2);
+ normalized_s2 = g_utf8_normalize (casefold, -1, G_NORMALIZE_NFD);
+ g_free (casefold);
+
+ len_s1 = strlen (normalized_s1);
+ len_s2 = strlen (normalized_s2);
+
+ if (len_s1 < len_s2)
+ goto finally_2;
+
+ ret = (strncmp (normalized_s1, normalized_s2, len_s2) == 0);
+
+finally_2:
+ g_free (normalized_s1);
+ g_free (normalized_s2);
+
+ return ret;
+}
+
static void
replace_selected_text (GtkTextBuffer *buffer,
const gchar *replace)
@@ -358,15 +400,15 @@ do_replace (GeditReplaceDialog *dialog,
match_case = gedit_replace_dialog_get_match_case (dialog);
if ((selected_text == NULL) ||
- (match_case && (strcmp (selected_text, unescaped_search_text) != 0)) ||
- (!match_case && !g_utf8_caselessnmatch (selected_text,
- unescaped_search_text,
- strlen (selected_text),
- strlen (unescaped_search_text)) != 0))
+ (match_case && (strcmp (selected_text, unescaped_search_text) != 0)) ||
+ (!match_case && !utf8_caselessnmatch (selected_text,
+ unescaped_search_text,
+ strlen (selected_text),
+ strlen (unescaped_search_text)) != 0))
{
do_find (dialog, window);
g_free (unescaped_search_text);
- g_free (selected_text);
+ g_free (selected_text);
return;
}
@@ -377,7 +419,7 @@ do_replace (GeditReplaceDialog *dialog,
g_free (unescaped_search_text);
g_free (selected_text);
g_free (unescaped_replace_text);
-
+
do_find (dialog, window);
}
diff --git a/gedit/gedit-utils.c b/gedit/gedit-utils.c
index 621b042..f93db15 100644
--- a/gedit/gedit-utils.c
+++ b/gedit/gedit-utils.c
@@ -209,50 +209,6 @@ gedit_dialog_add_button (GtkDialog *dialog,
return button;
}
-/*
- * n: len of the string in bytes
- */
-gboolean
-g_utf8_caselessnmatch (const char *s1,
- const char *s2,
- gssize n1,
- gssize n2)
-{
- gchar *casefold;
- gchar *normalized_s1;
- gchar *normalized_s2;
- gint len_s1;
- gint len_s2;
- gboolean ret = FALSE;
-
- g_return_val_if_fail (s1 != NULL, FALSE);
- g_return_val_if_fail (s2 != NULL, FALSE);
- g_return_val_if_fail (n1 > 0, FALSE);
- g_return_val_if_fail (n2 > 0, FALSE);
-
- casefold = g_utf8_casefold (s1, n1);
- normalized_s1 = g_utf8_normalize (casefold, -1, G_NORMALIZE_NFD);
- g_free (casefold);
-
- casefold = g_utf8_casefold (s2, n2);
- normalized_s2 = g_utf8_normalize (casefold, -1, G_NORMALIZE_NFD);
- g_free (casefold);
-
- len_s1 = strlen (normalized_s1);
- len_s2 = strlen (normalized_s2);
-
- if (len_s1 < len_s2)
- goto finally_2;
-
- ret = (strncmp (normalized_s1, normalized_s2, len_s2) == 0);
-
-finally_2:
- g_free (normalized_s1);
- g_free (normalized_s2);
-
- return ret;
-}
-
/**
* gedit_utils_set_atk_name_description:
* @widget: The Gtk widget for which name/description to be set
diff --git a/gedit/gedit-utils.h b/gedit/gedit-utils.h
index 3495bdf..604b251 100644
--- a/gedit/gedit-utils.h
+++ b/gedit/gedit-utils.h
@@ -82,11 +82,6 @@ gchar *gedit_utils_str_middle_truncate (const gchar *string,
gchar *gedit_utils_str_end_truncate (const gchar *string,
guint truncate_length);
-gboolean g_utf8_caselessnmatch (const char *s1,
- const char *s2,
- gssize n1,
- gssize n2);
-
void gedit_utils_set_atk_name_description (GtkWidget *widget,
const gchar *name,
const gchar *description);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]