[empathy] tpaw-utils: copy URL handling functions from Empathy to tp-aw



commit 6609b50bce338fdb3fe470f57727d30211c8d104
Author: Marco Barisione <marco barisione collabora co uk>
Date:   Tue Jul 30 16:15:05 2013 +0100

    tpaw-utils: copy URL handling functions from Empathy to tp-aw
    
    This commit also changes the licence of the moved code from GPL to LGPL.
    See GOSSIP-RELICENSING.txt for details.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=699492

 libempathy-gtk/empathy-ui-utils.c       |   43 +-----------------------------
 libempathy-gtk/empathy-ui-utils.h       |    4 ---
 tp-account-widgets/tpaw-string-parser.c |    4 ++-
 tp-account-widgets/tpaw-utils.c         |   40 ++++++++++++++++++++++++++++
 tp-account-widgets/tpaw-utils.h         |    5 +++
 5 files changed, 50 insertions(+), 46 deletions(-)
---
diff --git a/libempathy-gtk/empathy-ui-utils.c b/libempathy-gtk/empathy-ui-utils.c
index 272c425..174ecea 100644
--- a/libempathy-gtk/empathy-ui-utils.c
+++ b/libempathy-gtk/empathy-ui-utils.c
@@ -37,6 +37,7 @@
 #include <glib/gi18n-lib.h>
 #include <gio/gdesktopappinfo.h>
 #include <tp-account-widgets/tpaw-live-search.h>
+#include <tp-account-widgets/tpaw-utils.h>
 
 #include "empathy-ft-factory.h"
 #include "empathy-images.h"
@@ -810,46 +811,6 @@ empathy_filename_from_icon_name (const gchar *icon_name,
   return ret;
 }
 
-/** empathy_make_absolute_url_len:
- * @url: an url
- * @len: a length
- *
- * Same as #empathy_make_absolute_url but for a limited string length
- */
-gchar *
-empathy_make_absolute_url_len (const gchar *url,
-    guint len)
-{
-  g_return_val_if_fail (url != NULL, NULL);
-
-  if (g_str_has_prefix (url, "help:") ||
-      g_str_has_prefix (url, "mailto:";) ||
-      strstr (url, ":/"))
-    return g_strndup (url, len);
-
-  if (strstr (url, "@"))
-    return g_strdup_printf ("mailto:%.*s";, len, url);
-
-  return g_strdup_printf ("http://%.*s";, len, url);
-}
-
-/** empathy_make_absolute_url:
- * @url: an url
- *
- * The URL opening code can't handle schemeless strings, so we try to be
- * smart and add http if there is no scheme or doesn't look like a mail
- * address. This should work in most cases, and let us click on strings
- * like "www.gnome.org".
- *
- * Returns: a newly allocated url with proper mailto: or http:// prefix, use
- * g_free when your are done with it
- */
-gchar *
-empathy_make_absolute_url (const gchar *url)
-{
-  return empathy_make_absolute_url_len (url, strlen (url));
-}
-
 void
 empathy_url_show (GtkWidget *parent,
       const char *url)
@@ -860,7 +821,7 @@ empathy_url_show (GtkWidget *parent,
   g_return_if_fail (parent == NULL || GTK_IS_WIDGET (parent));
   g_return_if_fail (url != NULL);
 
-  real_url = empathy_make_absolute_url (url);
+  real_url = tpaw_make_absolute_url (url);
 
   gtk_show_uri (parent ? gtk_widget_get_screen (parent) : NULL, real_url,
       gtk_get_current_event_time (), &error);
diff --git a/libempathy-gtk/empathy-ui-utils.h b/libempathy-gtk/empathy-ui-utils.h
index 79e3e11..3478e86 100644
--- a/libempathy-gtk/empathy-ui-utils.h
+++ b/libempathy-gtk/empathy-ui-utils.h
@@ -98,10 +98,6 @@ void empathy_move_to_window_desktop (GtkWindow *window,
     guint32 timestamp);
 
 /* URL */
-gchar * empathy_make_absolute_url (const gchar *url);
-
-gchar * empathy_make_absolute_url_len (const gchar *url,
-    guint len);
 void empathy_url_show (GtkWidget *parent,
     const char *url);
 
diff --git a/tp-account-widgets/tpaw-string-parser.c b/tp-account-widgets/tpaw-string-parser.c
index 172a763..de77782 100644
--- a/tp-account-widgets/tpaw-string-parser.c
+++ b/tp-account-widgets/tpaw-string-parser.c
@@ -21,6 +21,8 @@
 #include "config.h"
 #include "tpaw-string-parser.h"
 
+#include <tp-account-widgets/tpaw-utils.h>
+
 #include "empathy-ui-utils.h"
 
 #define SCHEMES           "([a-zA-Z\\+]+)"
@@ -134,7 +136,7 @@ tpaw_string_replace_link (const gchar *text,
        gchar *title;
        gchar *markup;
 
-       real_url = empathy_make_absolute_url_len (text, len);
+       real_url = tpaw_make_absolute_url_len (text, len);
 
        /* Need to copy manually, because g_markup_printf_escaped does not work
         * with string precision pitfalls. */
diff --git a/tp-account-widgets/tpaw-utils.c b/tp-account-widgets/tpaw-utils.c
index a31fc26..6ee9cbe 100644
--- a/tp-account-widgets/tpaw-utils.c
+++ b/tp-account-widgets/tpaw-utils.c
@@ -272,3 +272,43 @@ tpaw_get_toplevel_window (GtkWidget *widget)
 
   return NULL;
 }
+
+/** tpaw_make_absolute_url_len:
+ * @url: an url
+ * @len: a length
+ *
+ * Same as #tpaw_make_absolute_url but for a limited string length
+ */
+gchar *
+tpaw_make_absolute_url_len (const gchar *url,
+    guint len)
+{
+  g_return_val_if_fail (url != NULL, NULL);
+
+  if (g_str_has_prefix (url, "help:") ||
+      g_str_has_prefix (url, "mailto:";) ||
+      strstr (url, ":/"))
+    return g_strndup (url, len);
+
+  if (strstr (url, "@"))
+    return g_strdup_printf ("mailto:%.*s";, len, url);
+
+  return g_strdup_printf ("http://%.*s";, len, url);
+}
+
+/** tpaw_make_absolute_url:
+ * @url: an url
+ *
+ * The URL opening code can't handle schemeless strings, so we try to be
+ * smart and add http if there is no scheme or doesn't look like a mail
+ * address. This should work in most cases, and let us click on strings
+ * like "www.gnome.org".
+ *
+ * Returns: a newly allocated url with proper mailto: or http:// prefix, use
+ * g_free when your are done with it
+ */
+gchar *
+tpaw_make_absolute_url (const gchar *url)
+{
+  return tpaw_make_absolute_url_len (url, strlen (url));
+}
diff --git a/tp-account-widgets/tpaw-utils.h b/tp-account-widgets/tpaw-utils.h
index 8a40dc9..f8fad91 100644
--- a/tp-account-widgets/tpaw-utils.h
+++ b/tp-account-widgets/tpaw-utils.h
@@ -58,6 +58,11 @@ void tpaw_window_present_with_time (GtkWindow *window,
     guint32 timestamp);
 GtkWindow * tpaw_get_toplevel_window (GtkWidget *widget);
 
+/* URL */
+gchar * tpaw_make_absolute_url (const gchar *url);
+gchar * tpaw_make_absolute_url_len (const gchar *url,
+    guint len);
+
 /* Copied from wocky/wocky-utils.h */
 
 #define tpaw_implement_finish_void(source, tag) \


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