diff options
author | wm4 <wm4@nowhere> | 2015-09-10 14:15:12 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2015-09-10 14:15:48 +0200 |
commit | f1205293a70b13f53bfce0a1a9859132b8421443 (patch) | |
tree | fb6ead7e0fbfedbfe9454144ef5349f87de60529 /input/cmd_parse.c | |
parent | 2492b5f1198161a04b046554df79390eb312ca5c (diff) | |
download | mpv-f1205293a70b13f53bfce0a1a9859132b8421443.tar.bz2 mpv-f1205293a70b13f53bfce0a1a9859132b8421443.tar.xz |
command: make "add <property> 0" not change the value
The value 0 was treated specially, and effectively forced the increment
to 1. Interestingly, passing 0 or no value also does not include the
scale (from touchpads etc.), but this is probably an accidental behavior
that was never intentionally added.
Simplify it and make the default increment 1. 0 now means what it
should: the value will not be changed. This is not particularly useful,
but on the other hand there is no need for surprising and unintuitive
semantics.
OARG_CYCLEDIR() failed to apply the default value, because
m_option_type_cycle_dir was missing a copy handler - add this too.
Diffstat (limited to 'input/cmd_parse.c')
-rw-r--r-- | input/cmd_parse.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/input/cmd_parse.c b/input/cmd_parse.c index 206bd4171f..ba35cd5e1c 100644 --- a/input/cmd_parse.c +++ b/input/cmd_parse.c @@ -471,8 +471,15 @@ static int parse_cycle_dir(struct mp_log *log, const struct m_option *opt, return 1; } +static void copy_opt(const m_option_t *opt, void *dst, const void *src) +{ + if (dst && src) + memcpy(dst, src, opt->type->size); +} + const struct m_option_type m_option_type_cycle_dir = { .name = "up|down", .parse = parse_cycle_dir, + .copy = copy_opt, .size = sizeof(double), }; |