diff options
author | Berke Viktor <bviktor@hexchat.org> | 2012-10-13 10:24:43 +0200 |
---|---|---|
committer | Berke Viktor <bviktor@hexchat.org> | 2012-10-13 10:26:32 +0200 |
commit | dfd4828ad29b96d69c901b9f254de70594f88c60 (patch) | |
tree | 17f73763563db590ab90a856fb1c2876fa7e2016 | |
parent | 6f1185c00e71d158216de692916ff4710b73ebbf (diff) |
Fix opening folders in portable mode
-rw-r--r-- | src/common/url.c | 6 | ||||
-rw-r--r-- | 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); |