diff options
author | wm4 <wm4@nowhere> | 2013-05-18 12:53:38 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2013-05-18 17:45:55 +0200 |
commit | 3e6ec6dfa551740c4d52ede83a0cacba3ab59532 (patch) | |
tree | 72aca62e59e5465d4d65d3cb2570a956100801cb | |
parent | b0a60b7321c8878154f2488d99dd7b99cefca43b (diff) | |
download | mpv-3e6ec6dfa551740c4d52ede83a0cacba3ab59532.tar.bz2 mpv-3e6ec6dfa551740c4d52ede83a0cacba3ab59532.tar.xz |
input: accept input command prefixes in any order
This is more consistent, and doesn't bother the user with ordering
rules when new prefixes are added.
Will break obscure uses of legacy commands: if the command is supposed
to be translated by the legacy command bridge, and if that command uses
one of the pausing* prefixes, the command can't be parsed. Well, just
use the new commands in this case.
-rw-r--r-- | core/input/input.c | 42 |
1 files changed, 22 insertions, 20 deletions
diff --git a/core/input/input.c b/core/input/input.c index 116e963b93..ebfd74a7ea 100644 --- a/core/input/input.c +++ b/core/input/input.c @@ -794,16 +794,6 @@ mp_cmd_t *mp_input_parse_cmd(bstr str, const char *loc) bstr start = str; void *tmp = talloc_new(NULL); - if (eat_token(&str, "pausing")) { - pausing = 1; - } else if (eat_token(&str, "pausing_keep")) { - pausing = 2; - } else if (eat_token(&str, "pausing_toggle")) { - pausing = 3; - } else if (eat_token(&str, "pausing_keep_force")) { - pausing = 4; - } - str = bstr_lstrip(str); for (const struct legacy_cmd *entry = legacy_cmds; entry->old; entry++) { size_t old_len = strlen(entry->old); @@ -820,16 +810,28 @@ mp_cmd_t *mp_input_parse_cmd(bstr str, const char *loc) } } - if (eat_token(&str, "no-osd")) { - on_osd = MP_ON_OSD_NO; - } else if (eat_token(&str, "osd-bar")) { - on_osd = MP_ON_OSD_BAR; - } else if (eat_token(&str, "osd-msg")) { - on_osd = MP_ON_OSD_MSG; - } else if (eat_token(&str, "osd-msg-bar")) { - on_osd = MP_ON_OSD_MSG | MP_ON_OSD_BAR; - } else if (eat_token(&str, "osd-auto")) { - // default + while (1) { + if (eat_token(&str, "pausing")) { + pausing = 1; + } else if (eat_token(&str, "pausing_keep")) { + pausing = 2; + } else if (eat_token(&str, "pausing_toggle")) { + pausing = 3; + } else if (eat_token(&str, "pausing_keep_force")) { + pausing = 4; + } else if (eat_token(&str, "no-osd")) { + on_osd = MP_ON_OSD_NO; + } else if (eat_token(&str, "osd-bar")) { + on_osd = MP_ON_OSD_BAR; + } else if (eat_token(&str, "osd-msg")) { + on_osd = MP_ON_OSD_MSG; + } else if (eat_token(&str, "osd-msg-bar")) { + on_osd = MP_ON_OSD_MSG | MP_ON_OSD_BAR; + } else if (eat_token(&str, "osd-auto")) { + // default + } else { + break; + } } int cmd_idx = 0; |