1
mirror of https://github.com/mpv-player/mpv synced 2024-10-02 16:25:33 +02:00

win32: change config path priorities

Assume mpv.exe is located in $mpv_exe_dir, then config files were
preferably loaded from "$mpv_exe_dir/mpv". This was mostly traditional,
and inherited from MPlayer times.

Reverse the config path priority order, and prefer $CSIDL_APPDATA/mpv as
main config path. This also fixes behavior when writing watch_later
configs, and mpv is installed in a not-writable path.

It's possible that this will cause regressions for some users, if the
change in preference suddenly prefers stale config files (which may
happen to longer around in the appdata config dir) over the user's
proper config.

Also explicitly document the behavior.
This commit is contained in:
wm4 2014-10-23 10:51:51 +02:00
parent 474461244e
commit 34373032b5
2 changed files with 31 additions and 2 deletions

View File

@ -717,6 +717,35 @@ override the standard directory ``~/.config/mpv/``.
Also, the old config location at ``~/.mpv/`` is still read, and if the XDG Also, the old config location at ``~/.mpv/`` is still read, and if the XDG
variant does not exist, will still be preferred. variant does not exist, will still be preferred.
FILES ON WINDOWS
================
On win32 (if compiled with MinGW, but not Cygwin), the default config file
locations are different:
``$CSIDL_APPDATA/mpv/mpv.conf``
Preferred mpv config file. This maps to a system and user-specific path,
for example ``C:\users\USERNAME\Application Data\mpv\mpv.conf``.
``$CSIDL_APPDATA/mpv/input.conf``
key bindings (see `INPUT.CONF`_ section)
``$CSIDL_APPDATA/mpv/lua/``
equivalent of ``~/.config/mpv/lua/`` on Unix.
The environment variable ``$MPV_HOME`` completely overrides these, like on
UNIX.
Config files located in the same directory as ``mpv.exe`` are loaded with
lower priority. Some config files are loaded only once, which means that
e.g. of 2 ``input.conf`` files located in two config directories, only the
one from the directory with higher priority will be loaded.
A third config directory with lowest priority is the directory named ``mpv``
in the same directory as ``mpv.exe``. This used to be the directory with
highest priority, but is now discouraged to use and might be removed in the
future.
EXAMPLES OF MPV USAGE EXAMPLES OF MPV USAGE
===================== =====================

View File

@ -61,11 +61,11 @@ static char *mp_get_win_app_dir(void *talloc_ctx)
int mp_add_win_config_dirs(struct mpv_global *global, char **dirs, int i) int mp_add_win_config_dirs(struct mpv_global *global, char **dirs, int i)
{ {
void *talloc_ctx = dirs; void *talloc_ctx = dirs;
if ((dirs[i] = mp_get_win_exe_subdir(talloc_ctx))) if ((dirs[i] = mp_get_win_app_dir(talloc_ctx)))
i++; i++;
if ((dirs[i] = mp_get_win_exe_dir(talloc_ctx))) if ((dirs[i] = mp_get_win_exe_dir(talloc_ctx)))
i++; i++;
if ((dirs[i] = mp_get_win_app_dir(talloc_ctx))) if ((dirs[i] = mp_get_win_exe_subdir(talloc_ctx)))
i++; i++;
return i; return i;
} }