options: do not accept ":" as separator anymore in key/value lists

Accepting ":" in addition to "," seems confusing and dumb. It only
causing problems when you want to pass a value that contains ":". Remove
support for ":", it is now treated like any other normal character. This
affects all options that are listed as "Key/value list" in the option
list.

It's possible that this breaks for someone who happened to use ":" as
separator. But this was undocumented, and never recommended. Originally,
the option treated many other characters in a special way, but this was
changed in commit a3d561f950. I'm, not sure why ":" was explicitly
included. Maybe because -the absurd -vf/--af syntax uses ":" as list
separator. But "," was always recommended and used in examples for
key/value options.

Fixes: #8021 (if you consider it a bug)
This commit is contained in:
wm4 2020-08-22 20:25:20 +02:00
parent 0cea7b9ffb
commit b3758db128
3 changed files with 10 additions and 1 deletions

View File

@ -77,6 +77,8 @@ Interface changes
- the "subprocess" command does not connect spawned processes' stdin to
mpv's stdin anymore. Instead, stdin is connected to /dev/null by default.
To get the old behavior, set the "passthrough_stdin" argument to true.
- key/value list options do not accept ":" as item separator anymore,
only ",". This means ":" is always considered part of the value.
--- mpv 0.32.0 ---
- change behavior when using legacy option syntax with options that start
with two dashes (``--`` instead of a ``-``). Now, using the recommended

View File

@ -542,6 +542,13 @@ Suffix Meaning
Keys are unique within the list. If an already present key is set, the existing
key is removed before the new value is appended.
If you want to pass a value without interpreting it for escapes or ``,``, it is
recommended to use the ``-add`` variant. When using libmpv, prefer using
``MPV_FORMAT_NODE_MAP``; when using a scripting backend or the JSON IPC, use an
appropriate structured data type.
Prior to mpv 0.33, ``:`` was also recognized as separator by ``-set``.
Filter options
~~~~~~~~~~~~~~

View File

@ -1710,7 +1710,7 @@ static int parse_keyvalue_list(struct mp_log *log, const m_option_t *opt,
val = param;
param.len = 0;
} else {
r = read_subparam(log, name, ",:", &param, &val);
r = read_subparam(log, name, ",", &param, &val);
if (r < 0)
break;
}