From c1f46dbbe9a9b2d1ae6694118244bea8859ab2f0 Mon Sep 17 00:00:00 2001 From: Ricardo Constantino Date: Fri, 30 Jun 2017 14:53:33 +0100 Subject: scripting: add wrapper to load scripts with user paths Fixes regression since b2f756c80e, which broke load-script command when used with user paths (ex: ~~/script.lua) --- player/command.c | 2 +- player/core.h | 1 + player/scripting.c | 15 ++++++++++----- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/player/command.c b/player/command.c index b83196c677..560fc1dadc 100644 --- a/player/command.c +++ b/player/command.c @@ -5643,7 +5643,7 @@ int run_command(struct MPContext *mpctx, struct mp_cmd *cmd, struct mpv_node *re case MP_CMD_LOAD_SCRIPT: { char *script = cmd->args[0].v.s; - if (mp_load_script(mpctx, script) < 0) + if (mp_load_user_script(mpctx, script) < 0) return -1; break; } diff --git a/player/core.h b/player/core.h index 8af0c38dbd..fbc4b1ec7a 100644 --- a/player/core.h +++ b/player/core.h @@ -594,6 +594,7 @@ struct mp_scripting { void mp_load_scripts(struct MPContext *mpctx); void mp_load_builtin_scripts(struct MPContext *mpctx); int mp_load_script(struct MPContext *mpctx, const char *fname); +int mp_load_user_script(struct MPContext *mpctx, const char *fname); // sub.c void reset_subtitle_state(struct MPContext *mpctx); diff --git a/player/scripting.c b/player/scripting.c index dc8e7d5b2b..5651950a42 100644 --- a/player/scripting.c +++ b/player/scripting.c @@ -155,6 +155,14 @@ int mp_load_script(struct MPContext *mpctx, const char *fname) return 0; } +int mp_load_user_script(struct MPContext *mpctx, const char *fname) +{ + char *path = mp_get_user_path(NULL, mpctx->global, fname); + int ret = mp_load_script(mpctx, path); + talloc_free(path); + return ret; +} + static int compare_filename(const void *pa, const void *pb) { char *a = (char *)pa; @@ -219,11 +227,8 @@ void mp_load_scripts(struct MPContext *mpctx) // Load scripts from options char **files = mpctx->opts->script_files; for (int n = 0; files && files[n]; n++) { - if (files[n][0]) { - char *path = mp_get_user_path(NULL, mpctx->global, files[n]); - mp_load_script(mpctx, path); - talloc_free(path); - } + if (files[n][0]) + mp_load_user_script(mpctx, files[n]); } if (!mpctx->opts->auto_load_scripts) return; -- cgit v1.2.3