Age | Commit message (Collapse) | Author |
|
Brown paper bag in full effect.
The previous fix, while crushing the previous problem where an unknown
keysym for an interp def would lead to every key matching it, also
ignored explicit Any+AnyOfOrNone(All) mappings.
Such as the one xkeyboard-config relied on for Control to actually
update the modifier state.
Fix this by allowing mappings explicitly declared as Any/NoSymbol, while
ignoring only those with failed keysym lookups. Unfortunately, due to
the structure of the parser, it's a deeply inelegant fix.
Verified with a quick check of all layouts (albeit using default
variants only) in xkeyboard-config that this results in no changes to
the output at all, compared to xkbcomp 1.1.1.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
A NoSymbol syminterp leads to a Any+AnyOfOrAll(None) definition, which
is never what anyone would actually ever want in a sym interp. The
failure mode here was:
interpret XF86SomeKeysymYouDontHaveYet {
action=Something()
}
leading to:
interpret Any+AnyOfOrAll(None) {
action=Something()
}
leading to every single non-action key triggering your shiny new action
that was only supposed to come from a new keysym.
At least you could VT switch or zap, I guess.
Later, more invasive, revisions will bring a more useful error message.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
If we can't look up a modifier in a SymInterp declaration, don't make
that fatal enough to kill the entire file, just ignore it and move on.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
Remaining warnings are due to macros that check address or vectors
on the stack and auto generated yacc code.
Compiled with default flags and also as:
% make CFLAGS=-DENTRY_TRACKING_ON -DDEBUG_ON -DASSERTIONS_ON
to ensure the "simplification" of code like:
foo.c:
<hash>define DEBUG_VAR foo_VAR
<hash>include "foo.h"
...
foo.h:
<hash>ifdef DEBUG_VAR_NOT_LOCAL
extern
<hash>endif
int DEBUG_VAR;
...
did not change the author's "intended" logic.
|
|
|
|
indent -cbi 0 -nprs -nut -npcs -i4 -bli 0 *.c *.h
|
|
|
|
Since it's if (0 || foo), simplify to if (foo).
|
|
si.interp.match may be unused, so just clobber it, which means we don't
end up with stuff like LevelOneOnlyMask wandering in.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|