diff options
author | wm4 <wm4@nowhere> | 2020-08-22 20:25:20 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2020-08-22 20:25:20 +0200 |
commit | b3758db128fd732358a45a4719e01558a0f4bf1b (patch) | |
tree | d5c739ab242ec50cb6320c21b3c4bd5a510c8557 | |
parent | 0cea7b9ffbcf23c774a881f5d1d14f2fbbd86d5b (diff) | |
download | mpv-b3758db128fd732358a45a4719e01558a0f4bf1b.tar.bz2 mpv-b3758db128fd732358a45a4719e01558a0f4bf1b.tar.xz |
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 a3d561f950e74fe. 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)
-rw-r--r-- | DOCS/interface-changes.rst | 2 | ||||
-rw-r--r-- | DOCS/man/mpv.rst | 7 | ||||
-rw-r--r-- | options/m_option.c | 2 |
3 files changed, 10 insertions, 1 deletions
diff --git a/DOCS/interface-changes.rst b/DOCS/interface-changes.rst index bad810bef0..549c338ada 100644 --- a/DOCS/interface-changes.rst +++ b/DOCS/interface-changes.rst @@ -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 diff --git a/DOCS/man/mpv.rst b/DOCS/man/mpv.rst index dc61394ff7..c068f87ece 100644 --- a/DOCS/man/mpv.rst +++ b/DOCS/man/mpv.rst @@ -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 ~~~~~~~~~~~~~~ diff --git a/options/m_option.c b/options/m_option.c index 9b0fd82779..4d222df500 100644 --- a/options/m_option.c +++ b/options/m_option.c @@ -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, ",:", ¶m, &val); + r = read_subparam(log, name, ",", ¶m, &val); if (r < 0) break; } |