summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2020-08-22 20:25:20 +0200
committerwm4 <wm4@nowhere>2020-08-22 20:25:20 +0200
commitb3758db128fd732358a45a4719e01558a0f4bf1b (patch)
treed5c739ab242ec50cb6320c21b3c4bd5a510c8557
parent0cea7b9ffbcf23c774a881f5d1d14f2fbbd86d5b (diff)
downloadmpv-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.rst2
-rw-r--r--DOCS/man/mpv.rst7
-rw-r--r--options/m_option.c2
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, ",:", &param, &val);
+ r = read_subparam(log, name, ",", &param, &val);
if (r < 0)
break;
}