From 02139fbb79e8a761ade80a6fffc03f072d97b3da Mon Sep 17 00:00:00 2001 From: Diogo Sousa Date: Wed, 19 Jun 2013 00:15:47 +0100 Subject: Handle IPv6 addresses correcly in fe_open_url_locale(). --- src/fe-gtk/fe-gtk.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/fe-gtk/fe-gtk.c b/src/fe-gtk/fe-gtk.c index e017b9b9..e3b4ec80 100644 --- a/src/fe-gtk/fe-gtk.c +++ b/src/fe-gtk/fe-gtk.c @@ -1008,8 +1008,22 @@ fe_open_url_inner (const char *url) static void fe_open_url_locale (const char *url) { + int url_type = url_check_word (url); + + /* IPv6 addr. Add http:// */ + if (url_type == WORD_HOST6) + { + /* IPv6 addrs in urls should be enclosed in [ ] */ + if (*url != '[') + url = g_strdup_printf ("http://[%s]", url); + else + url = g_strdup_printf ("http://%s", url); + + fe_open_url_inner (url); + g_free ((char *)url); + } /* the http:// part's missing, prepend it, otherwise it won't always work */ - if (strchr (url, ':') == NULL && url_check_word (url) != WORD_PATH) + else if (strchr (url, ':') == NULL && url_type != WORD_PATH) { url = g_strdup_printf ("http://%s", url); fe_open_url_inner (url); -- cgit 1.4.1