[empathy] Extract empathy_string_parser_link and empathy_string_parser_escape from empathy-theme-adium.c



commit 1d42b9fde60750fab76d7af606388bc28b1083ad
Author: Xavier Claessens <xclaesse gmail com>
Date:   Sun Nov 1 11:19:57 2009 +0100

    Extract empathy_string_parser_link and empathy_string_parser_escape from empathy-theme-adium.c

 libempathy-gtk/empathy-theme-adium.c |   66 +--------------------------------
 libempathy-gtk/empathy-ui-utils.c    |   62 +++++++++++++++++++++++++++++++
 libempathy-gtk/empathy-ui-utils.h    |   12 ++++++
 3 files changed, 76 insertions(+), 64 deletions(-)
---
diff --git a/libempathy-gtk/empathy-theme-adium.c b/libempathy-gtk/empathy-theme-adium.c
index 014cd87..f1da329 100644
--- a/libempathy-gtk/empathy-theme-adium.c
+++ b/libempathy-gtk/empathy-theme-adium.c
@@ -192,19 +192,6 @@ theme_adium_open_address_cb (GtkMenuItem *menuitem,
 }
 
 static void
-theme_adium_parser_escape (GString *string,
-			   const gchar *text,
-			   gssize len,
-			   gpointer user_data)
-{
-	gchar *escaped;
-
-	escaped = g_markup_escape_text (text, len);
-	g_string_append (string, escaped);
-	g_free (escaped);
-}
-
-static void
 theme_adium_parser_newline (GString *string,
 			    const gchar *text,
 			    gssize len,
@@ -281,60 +268,11 @@ theme_adium_parser_smiley (GString *string,
 	empathy_string_parser_substr (string, text + last, len - last, user_data);
 }
 
-static void
-theme_adium_parser_url (GString *string,
-			const gchar *text,
-			gssize len,
-			gpointer user_data)
-{
-	GRegex     *uri_regex;
-	GMatchInfo *match_info;
-	gboolean    match;
-	gint        last = 0;
-
-	/* Add <a href></a> arround links */
-	uri_regex = empathy_uri_regex_dup_singleton ();
-	match = g_regex_match_full (uri_regex, text, len, 0, 0, &match_info, NULL);
-	if (match) {
-		gint s = 0, e = 0;
-
-		do {
-			gchar *real_url;
-
-			g_match_info_fetch_pos (match_info, 0, &s, &e);
-
-			if (s > last) {
-				/* Append the text between last link (or the
-				 * start of the message) and this link */
-				empathy_string_parser_substr (string, text + last,
-							      s - last,
-							      user_data);
-			}
-
-			/* Append the link inside <a href=""></a> tag */
-			real_url = empathy_make_absolute_url_len (text + s, e - s);
-
-			g_string_append_printf (string, "<a href=\"%s\">",
-				real_url);
-			g_string_append_len (string, text + s, e - s);
-			g_string_append (string, "</a>");
-
-			g_free (real_url);
-			last = e;
-		} while (g_match_info_next (match_info, NULL));
-	}
-
-	empathy_string_parser_substr (string, text + last, len - last, user_data);
-
-	g_match_info_free (match_info);
-	g_regex_unref (uri_regex);
-}
-
 static EmpathyStringParser string_parsers[] = {
-	theme_adium_parser_url,
+	empathy_string_parser_link,
 	theme_adium_parser_smiley,
 	theme_adium_parser_newline,
-	theme_adium_parser_escape,
+	empathy_string_parser_escape,
 	NULL,
 };
 
diff --git a/libempathy-gtk/empathy-ui-utils.c b/libempathy-gtk/empathy-ui-utils.c
index 376d1f9..289874e 100644
--- a/libempathy-gtk/empathy-ui-utils.c
+++ b/libempathy-gtk/empathy-ui-utils.c
@@ -1583,3 +1583,65 @@ empathy_string_parser_substr (GString *string,
 	}
 }
 
+void
+empathy_string_parser_link (GString *string,
+			    const gchar *text,
+			    gssize len,
+			    gpointer user_data)
+{
+	GRegex     *uri_regex;
+	GMatchInfo *match_info;
+	gboolean    match;
+	gint        last = 0;
+
+	/* Add <a href></a> arround links */
+	uri_regex = empathy_uri_regex_dup_singleton ();
+	match = g_regex_match_full (uri_regex, text, len, 0, 0, &match_info, NULL);
+	if (match) {
+		gint s = 0, e = 0;
+
+		do {
+			gchar *real_url;
+
+			g_match_info_fetch_pos (match_info, 0, &s, &e);
+
+			if (s > last) {
+				/* Append the text between last link (or the
+				 * start of the message) and this link */
+				empathy_string_parser_substr (string, text + last,
+							      s - last,
+							      user_data);
+			}
+
+			/* Append the link inside <a href=""></a> tag */
+			real_url = empathy_make_absolute_url_len (text + s, e - s);
+
+			g_string_append_printf (string, "<a href=\"%s\">",
+				real_url);
+			g_string_append_len (string, text + s, e - s);
+			g_string_append (string, "</a>");
+
+			g_free (real_url);
+			last = e;
+		} while (g_match_info_next (match_info, NULL));
+	}
+
+	empathy_string_parser_substr (string, text + last, len - last, user_data);
+
+	g_match_info_free (match_info);
+	g_regex_unref (uri_regex);
+}
+
+void
+empathy_string_parser_escape (GString *string,
+			      const gchar *text,
+			      gssize len,
+			      gpointer user_data)
+{
+	gchar *escaped;
+
+	escaped = g_markup_escape_text (text, len);
+	g_string_append (string, escaped);
+	g_free (escaped);
+}
+
diff --git a/libempathy-gtk/empathy-ui-utils.h b/libempathy-gtk/empathy-ui-utils.h
index 58960c3..80332c9 100644
--- a/libempathy-gtk/empathy-ui-utils.h
+++ b/libempathy-gtk/empathy-ui-utils.h
@@ -129,6 +129,18 @@ empathy_string_parser_substr (GString *string,
 			      gssize len,
 			      EmpathyStringParser *parsers);
 
+void
+empathy_string_parser_link (GString *string,
+			    const gchar *text,
+			    gssize len,
+			    gpointer user_data);
+
+void
+empathy_string_parser_escape (GString *string,
+			      const gchar *text,
+			      gssize len,
+			      gpointer user_data);
+
 G_END_DECLS
 
 #endif /*  __EMPATHY_UI_UTILS_H__ */



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]