From f1205293a70b13f53bfce0a1a9859132b8421443 Mon Sep 17 00:00:00 2001 From: wm4 Date: Thu, 10 Sep 2015 14:15:12 +0200 Subject: command: make "add 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. --- input/cmd_parse.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'input/cmd_parse.c') 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), }; -- cgit v1.2.3