input: allow input.conf bindings to be declared as builtin

This might be helpful if we ever want cascading config files. Also, we
will probably need it if we change the default input.conf bindings, and
want to provide compatibility input.conf files.
This commit is contained in:
wm4 2014-02-25 22:09:20 +01:00
parent a85ff44511
commit 70ff543029
2 changed files with 14 additions and 0 deletions

View File

@ -39,6 +39,9 @@
# file, if unedited, doesn't define any bindings).
# Lines that have a space after the '#' are always ignored as real comments.
# If this is enabled, treat all the following bindings as default.
#default-bindings start
#MOUSE_BTN0 ignore # don't do anything
#MOUSE_BTN0_DBL cycle fullscreen # toggle fullscreen on/off
#MOUSE_BTN2 cycle pause # toggle pause on/off

View File

@ -1386,6 +1386,17 @@ static int parse_config(struct input_ctx *ictx, bool builtin, bstr data,
line = bstr_lstrip(line);
if (line.len == 0 || bstr_startswith0(line, "#"))
continue;
if (bstr_eatstart0(&line, "default-bindings ")) {
bstr orig = line;
bstr_split_tok(line, "#", &line, &(bstr){0});
line = bstr_strip(line);
if (bstr_equals0(line, "start")) {
builtin = true;
} else {
MP_ERR(ictx, "Broken line: %.*s at %s\n", BSTR_P(orig), cur_loc);
}
continue;
}
struct bstr command;
// Find the key name starting a line
struct bstr keyname = bstr_split(line, WHITESPACE, &command);