From 86ab4b8a9fbcbb337add2bf06985c5de2aea7a90 Mon Sep 17 00:00:00 2001 From: wm4 Date: Thu, 29 Sep 2016 16:44:01 +0200 Subject: path: default ~~ paths to home directory The code for expanding the ~~ prefix used mp_find_config_file(), which strictly looks for _existing_ files in any config path (e.g. not just the user-local one, but also system-wide config). If no such file exists, it simply returns NULL, which makes the code below just return the literal, unexpanded path. Change this so that it'll resolve the path to the user-local config directory instead. Requested in #3591. --- options/path.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'options') diff --git a/options/path.c b/options/path.c index cd1deb6e78..7353d6fffd 100644 --- a/options/path.c +++ b/options/path.c @@ -169,6 +169,12 @@ char *mp_get_user_path(void *talloc_ctx, struct mpv_global *global, const char *rest0 = rest.start; // ok in this case if (bstr_equals0(prefix, "~")) { res = mp_find_config_file(talloc_ctx, global, rest0); + if (!res) { + void *tmp = talloc_new(NULL); + const char *p = mp_get_platform_path(tmp, global, "home"); + res = mp_path_join_bstr(talloc_ctx, bstr0(p), rest); + talloc_free(tmp); + } } else if (bstr_equals0(prefix, "")) { res = mp_path_join_bstr(talloc_ctx, bstr0(getenv("HOME")), rest); } else if (bstr_eatstart0(&prefix, "~")) { -- cgit v1.2.3