summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--src/common/url.c6
-rw-r--r--src/fe-gtk/fe-gtk.c3
2 files changed, 6 insertions, 3 deletions
diff --git a/src/common/url.c b/src/common/url.c
index e258d5f1..1793717d 100644
--- a/src/common/url.c
+++ b/src/common/url.c
@@ -232,9 +232,11 @@ url_check_word (char *word, int len)
 	const char *at, *dot;
 	int i, dots;
 
-	/* this is pretty much the same as in logmask_is_fullpath() except with length checks */
+	/* this is pretty much the same as in logmask_is_fullpath() except with length checks and .\ for portable mode */
 #ifdef WIN32
-	if ((len > 1 && word[0] == '\\') || (len > 2 && (((word[0] >= 'A' && word[0] <= 'Z') || (word[0] >= 'a' && word[0] <= 'z')) && word[1] == ':')))
+	if ((len > 1 && word[0] == '\\') ||
+		(len > 2 && word[0] == '.' && word[1] == '\\') ||
+		(len > 2 && (((word[0] >= 'A' && word[0] <= 'Z') || (word[0] >= 'a' && word[0] <= 'z')) && word[1] == ':')))
 #else
 	if (len > 1 && word[0] == '/')
 #endif
diff --git a/src/fe-gtk/fe-gtk.c b/src/fe-gtk/fe-gtk.c
index 29748f0b..5b4260fd 100644
--- a/src/fe-gtk/fe-gtk.c
+++ b/src/fe-gtk/fe-gtk.c
@@ -45,6 +45,7 @@
 #include "../common/xchatc.h"
 #include "../common/plugin.h"
 #include "../common/server.h"
+#include "../common/url.h"
 #include "gtkutil.h"
 #include "maingui.h"
 #include "pixmaps.h"
@@ -1081,7 +1082,7 @@ static void
 fe_open_url_locale (const char *url)
 {
 	/* the http:// part's missing, prepend it, otherwise it won't always work */
-	if (strchr (url, ':') == NULL)
+	if (strchr (url, ':') == NULL && url_check_word (url, strlen (url)) != WORD_PATH)
 	{
 		url = g_strdup_printf ("http://%s", url);
 		fe_open_url_inner (url);