summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorBerke Viktor <bviktor@hexchat.org>2012-10-13 10:24:43 +0200
committerBerke Viktor <bviktor@hexchat.org>2012-10-13 10:26:32 +0200
commitdfd4828ad29b96d69c901b9f254de70594f88c60 (patch)
tree17f73763563db590ab90a856fb1c2876fa7e2016 /src
parent6f1185c00e71d158216de692916ff4710b73ebbf (diff)
Fix opening folders in portable mode
Diffstat (limited to 'src')
-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);