From dfd4828ad29b96d69c901b9f254de70594f88c60 Mon Sep 17 00:00:00 2001 From: Berke Viktor Date: Sat, 13 Oct 2012 10:24:43 +0200 Subject: [PATCH] Fix opening folders in portable mode --- src/common/url.c | 6 ++++-- src/fe-gtk/fe-gtk.c | 3 ++- 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);