X-Git-Url: http://git.openbox.org/?p=dana%2Fopenbox.git;a=blobdiff_plain;f=parser%2Fparse.c;h=ed66f088f6ba33f715b805fce01a25e5123a427e;hp=636b451f2b5d3a937b76279ebdf971bc3b767655;hb=b69ee77256dccee0764c07416fe9bc7db9e5a12d;hpb=2ed56873b6a51965ff8159f8e0bbf82324f194d8 diff --git a/parser/parse.c b/parser/parse.c index 636b451..ed66f08 100644 --- a/parser/parse.c +++ b/parser/parse.c @@ -456,14 +456,16 @@ void parse_paths_shutdown(void) gchar *parse_expand_tilde(const gchar *f) { - gchar **spl; gchar *ret; + GRegex *regex; if (!f) return NULL; - spl = g_strsplit(f, "~", 0); - ret = g_strjoinv(g_get_home_dir(), spl); - g_strfreev(spl); + + regex = g_regex_new("(?:^|(?<=[ \\t]))~(?=[/ \\t$])", G_REGEX_MULTILINE | G_REGEX_RAW, 0, NULL); + ret = g_regex_replace_literal(regex, f, -1, 0, g_get_home_dir(), 0, NULL); + g_regex_unref(regex); + return ret; }