diff options
author | wm4 <wm4@nowhere> | 2014-10-17 02:55:31 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2014-10-17 02:55:31 +0200 |
commit | 01e1d0948d69a1bf6d830de5cae54bd4c1cdab47 (patch) | |
tree | 4a8c890aebd8b3e4cf2c4f33e4ca7c38be635da4 | |
parent | 41b2927f39f08f54039093746e1d1eded826101e (diff) | |
download | mpv-01e1d0948d69a1bf6d830de5cae54bd4c1cdab47.tar.bz2 mpv-01e1d0948d69a1bf6d830de5cae54bd4c1cdab47.tar.xz |
options: don't load per-file config files by default
Generally useless feature, and might be slightly dangerous if paths
can "escape" from the profile dir. (Normally this shouldn't be
possible, though.)
-rw-r--r-- | DOCS/man/mpv.rst | 2 | ||||
-rw-r--r-- | player/configfiles.c | 22 |
2 files changed, 12 insertions, 12 deletions
diff --git a/DOCS/man/mpv.rst b/DOCS/man/mpv.rst index a005b92349..5078aac61a 100644 --- a/DOCS/man/mpv.rst +++ b/DOCS/man/mpv.rst @@ -356,7 +356,7 @@ You can also write file-specific configuration files. If you wish to have a configuration file for a file called 'video.avi', create a file named 'video.avi.conf' with the file-specific options in it and put it in ``~/.config/mpv/``. You can also put the configuration file in the same directory -as the file to be played, as long as you give the ``--use-filedir-conf`` +as the file to be played. Both require you to set the ``--use-filedir-conf`` option (either on the command line or in your global config file). If a file-specific configuration file is found in the same directory, no file-specific configuration is loaded from ``~/.config/mpv``. In addition, the diff --git a/player/configfiles.c b/player/configfiles.c index bbc7ecc12a..75011eb9fa 100644 --- a/player/configfiles.c +++ b/player/configfiles.c @@ -111,15 +111,15 @@ static void mp_load_per_file_config(struct MPContext *mpctx) char cfg[512]; const char *file = mpctx->filename; - if (snprintf(cfg, sizeof(cfg), "%s.conf", file) >= sizeof(cfg)) { - MP_VERBOSE(mpctx, "Filename is too long, " - "can not load file or directory specific config files\n"); - return; - } + if (opts->use_filedir_conf) { + if (snprintf(cfg, sizeof(cfg), "%s.conf", file) >= sizeof(cfg)) { + MP_VERBOSE(mpctx, "Filename is too long, can not load file or " + "directory specific config files\n"); + return; + } - char *name = mp_basename(cfg); + char *name = mp_basename(cfg); - if (opts->use_filedir_conf) { bstr dir = mp_dirname(cfg); char *dircfg = mp_path_join(NULL, dir, bstr0("mpv.conf")); try_load_config(mpctx, dircfg, FILE_LOCAL_FLAGS); @@ -127,12 +127,12 @@ static void mp_load_per_file_config(struct MPContext *mpctx) if (try_load_config(mpctx, cfg, FILE_LOCAL_FLAGS)) return; - } - if ((confpath = mp_find_config_file(NULL, mpctx->global, name))) { - try_load_config(mpctx, confpath, FILE_LOCAL_FLAGS); + if ((confpath = mp_find_config_file(NULL, mpctx->global, name))) { + try_load_config(mpctx, confpath, FILE_LOCAL_FLAGS); - talloc_free(confpath); + talloc_free(confpath); + } } } |