|
972395b8
|
2013-12-01T12:08:47
|
|
expr: split expression types and allocate them separately
Currently, we have one ExprDef type, which contains a tagged union with
the value of all expression types. Turns out, this union is quite
wasteful memory-wise. Instead, create separate types for all expressions
(e.g ExprBinary, ExprInteger) which embed the common fields
(ExprCommon), and malloc them per their size; ExprDef then becomes a
union of all these types, but is just used as a generic pointer.
[Instead of making ExprDef a union, another option is to use
ExprCommon as the generic pointer type and then do up-castings, like we
do with ParseCommon. But this makes the code much uglier.]
The diff is mostly straightforward mechanical adaptations. It could have
been much smaller with the help of C11 anonymous structs (which were
previously a gnu extension). This will have saved all of the 'op' ->
'expr->op', etc changes. But if we can be a bit more portable for a
little effort, we should.
Before (./test/rulescomp, x86 32 bit, -O2):
==12974== total heap usage: 145,217 allocs, 145,217 frees, 10,476,238 bytes allocated
After:
==11145== total heap usage: 145,217 allocs, 145,217 frees, 8,270,358 bytes allocated
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
c24b6420
|
2013-11-30T23:24:18
|
|
expr: add constructor for boolean expressions
Also add a 'bool set' to the ExprDef union, instead of using 'ival' as a
bool.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
dbd8b1ef
|
2013-11-30T22:25:39
|
|
expr: add 'ident' value to ExprDef union
This distinguishes between an identifier expression and a string
expression in the union.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
7b3bd11f
|
2012-10-16T16:05:34
|
|
Add xkb_keysym_from_name() flags argument for case-insensitive search
This adds a flags argument to xkb_keysym_from_name() so we can perform a
case-insensitive search. This should really be supported as many keysyms
have really weird capitalization-rules.
However, as this may produce conflicts, users must be warned to only use
this for fallback paths or error-recovery. This is also the reason why the
internal XKB parsers still use the case-sensitive search.
This also adds some test-cases so the expected results are really
produced. The binary-size does _not_ change with this patch. However,
case-sensitive search may be slightly slower with this patch. But this is
barely measurable.
[ran: use bool instead of int for icase, add a recommendation to the
doc, and test a couple "thorny" cases.]
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
|
|
bdea377c
|
2012-10-10T17:30:15
|
|
Rename XKB_NUM_GROUPS to XKB_MAX_GROUPS
This is a more appropriate name now.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
6d74e66e
|
2012-10-06T17:53:53
|
|
Replace 0xff with MOD_REAL_MASK_ALL
To make it easier to see where it's used. The name is just to match
MOD_REAL.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
a1124b59
|
2012-10-06T17:42:21
|
|
expr: unify the real and virtual modifier functions
This again pushes the mod type annotation to the original call site, to
make it easier to grep to see where the real/virtual distinction
matters.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
e6e3bda3
|
2012-10-06T17:00:26
|
|
expr: share code for modifier functions
We can make more use of the functions in text.c now and remove some
cruft.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
9ebd2f67
|
2012-10-06T14:34:17
|
|
text: explicitly take mod_type in mod functions
This essentially "tags" each invocation of the functions with the
modifier type of the argument, which allows for easy grepping for them
(with the aim being, to remove anything but MOD_BOTH).
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
424de613
|
2012-10-05T22:46:21
|
|
Keep real and virtual mods in the same table in the keymap
We change the keymap->vmods array into keymap->mods, and change it's
member type from struct xkb_vmod to struct xkb_mod. This table now
includes the real modifiers in the first 8 places. To distinguish
between them, we add an enum mod_type to struct xkb_mod.
Besides being a more reasonable approach, this enables us to share
some code later, remove XKB_NUM_CORE_MODS (though the 0xff mask still
appears in a few places), and prepares us to flat out remove the
distinction in the future. This commit just does the conversion.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
1005b320
|
2012-10-05T22:07:04
|
|
Don't use shifted virtual modifier masks
Modifier masks can be confusing in some places. For example,
key->vmodmap only contains virtual modifiers, where the first is in
position 0, the second in 1 etc., while normally in a xkb_mod_mask_t the
virtual modifiers start from the 8th (XKB_NUM_CORE_MODS) position. This
happens in some other places as well.
Change all of the masks to be in the usual real+virtual format, and when
we need to access e.g. keymap->vmods we just adjust by
XKB_NUM_CORE_MODS. (This also goes for indexes, e.g.
interpret->virtual_modifier).
This makes this stuff easier to reason about.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
6974e1f9
|
2012-10-05T21:40:49
|
|
expr: don't expose LookupModIndex
The Lookup* functions should remain a private implementation detail of
the expr.c file.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
aed3140e
|
2012-10-05T21:06:34
|
|
Remove VModInfo for now
VModInfo currently is only used to track which virtual modifiers were
declared in the file which owns the VModInfo. This, in turn, is only
used in ResolveVirtualModifier, which in turn is only used to resolve
the virtualModifier field in an interpret statement (compat.c). In other
words, it is used to ensure that interprets can only use a vmod which
was declared in the same map.
We remove this now, because it doesn't do much and distracts from other
changes; we will later re-add it properly. Specificly, we will make it
so that virtual modifiers are not the exception in that they modify the
keymap directly, instead of keeping the changes in some *Info struct and
commiting them to the keymap at the end of the compilation. (This is bad
because if a vmod is added to the keymap, and then the compilation of
this specific file fails, the change sticks around nonetheless).
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
1401b0fb
|
2012-10-04T12:27:06
|
|
expr: don't allow "none" in LookupModIndex
LookupModMask handles this before calling LookupModIndex, and the only
other user in symbols.c doesn't handle this return value at all.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
fcd20290
|
2012-09-21T14:44:17
|
|
Don't use xkbcommon-compat names in internal code
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
82de180e
|
2012-09-11T15:09:37
|
|
Remove unused ExprResolveKeyName
The only user was removed in 314965b1.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
6573aca0
|
2012-09-10T21:05:04
|
|
kbproto unentanglement: XkbMaxShiftLevel
... by removing its only use.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
4b8ceae9
|
2012-08-21T12:45:03
|
|
kbproto untanglement: XkbKbdNumGroups
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
f5dffd2b
|
2012-08-21T11:21:19
|
|
kbproto untanglement: XkbKeyNameLength
Define it ourselves as XKB_KEY_NAME_LENGTH and use that, instead of the
one from XKB.h.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
af2a8b3a
|
2012-09-02T21:45:42
|
|
Unify some string tables from xkbcomp, text and keymap-dump
We move the LookupEntry struct from expr.h to text.h, along with most of
the lookup tables. This makes them available everywhere.
Looking up a value in the LookupEntry format is slower than direct index
mapping, but it allows multiple names per value (with the canonical one
being first) and "all"- and "none"-type masks. These functions are not
used anywhere efficiency matters.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
1a996883
|
2012-08-31T19:05:49
|
|
expr: make ResolveString return an atom
Almost all callers do xkb_atom_intern on the currently returned string,
while ResolveString converts the atom to the string to begin with...
uselss double work.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
41472822
|
2012-08-29T15:17:00
|
|
Use XKB_MOD_INVALID instead of XkbNoModifier
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
d3ddcf70
|
2012-08-15T21:45:02
|
|
expr: move op_type/value_type_to_string functions to ast
Generally the enum-to-string function should appear where the enum is
defined.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
cdc228ea
|
2012-08-13T11:00:43
|
|
Organize xkbcomp/ header files
Various non-functional changes:
- Re-add keycodes.h and move some stuff there.
- Add parser-priv.h for internal bison/flex stuff.
- Don't include headers from other headers, such that file dependencies
are immediate in each file.
- Rename xkbcomp.h -> ast.h, parseutils.{c,h} -> ast-build.{c,h}
- Rename path.{c,h} -> include.{c,h}
- Rename keytypes.c -> types.c
- Make the naming of XkbFile-related functions more consistent.
- Move xkb_map_{new,ref,unref} to map.c.
- Remove most extern keyword from function declarations, it's just
noise (XKB_EXPORT is what's important here).
- Append XKBCOMP_ to include guards.
- Shuffle some code around to make all of this work.
Splitting this would be a headache..
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
b2c4331a
|
2012-07-28T22:15:59
|
|
Handle key names consistently
We treat the key names as fixed length, non NUL terminated strings of
length XkbKeyNameLength, and use the appropriate *Text functions to
print them. We also use strncpy everywhere instead of memcpy to copy
the names, because it does some NUL padding and we might as well.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
15541766
|
2012-08-05T14:10:45
|
|
expr: make ResolveLevel return zero-based level
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
59d947c9
|
2012-08-05T19:24:44
|
|
Add and use xkb_level_index_t
Several types are used over the code for shift levels; better to use
just one.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
6f08a2cf
|
2012-08-03T00:33:40
|
|
expr: constify function arguments
We need this for later.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
7c7e4341
|
2012-08-01T11:25:34
|
|
Use only one set of core mod name-to-index functions
These were repeated 5 times.
Note that this changes the ABI slightly: XKB_MOD_NAME_CAPS is changed
from "Caps Lock" to "Lock", which is the ordinary legacy mod name for
it. Since its hidden behind a #define, it's best to stay compatible with
the old names (as I think was intended, given that "Mod1", etc. are the
same).
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
41d9afc5
|
2012-07-27T15:31:03
|
|
Remove ExprResult
Convert the IdentLookup typedef away from ExprResult, which drags along
everything else. This should also make all of the conversions explicit.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
6917901f
|
2012-07-27T14:15:39
|
|
expr: remove support for evaluating string as integer
As the comment nicely puts it, this is a bit weird. When you try to
evaluate an expression of type string into an integer, what it does is:
"" -> 0
"c" -> (ascii value, i.e. like a char literal)
more than one char -> error
The first one is obviously not very useful; why not just write 0?
The second one might be useful (though I don't see where in a keymap
it would be), but I don't think anyone would consider trying "X" for
that anyway.
A look through xkeyboard-config shows "" only used once as a string, and
"X" also only used as strings (and mostly in geometry which we don't
evaluate anyway). And I seriously doubt it's used (purposely) anywhere
else. So remove it.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
bd927abf
|
2012-07-24T19:39:59
|
|
expr: drop ExprResult from ResolveEnum
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
38614c88
|
2012-07-24T17:21:29
|
|
expr: drop ExprResult from ResolveMask
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
2e4933cd
|
2012-07-24T10:39:15
|
|
expr: drop ExprResult from ResolveInteger
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
d5682289
|
2012-07-24T01:22:26
|
|
expr: drop ExprResult from ResolveButton
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
6ec13570
|
2012-07-24T00:51:19
|
|
expr: drop ExprResult from ResolveLevel
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
000528dd
|
2012-07-24T00:23:34
|
|
expr: drop ExprResult from ResolveKeyCode
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
e258f9ee
|
2012-07-24T00:10:07
|
|
expr: drop ExprResult from ResolveGroup
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
70262292
|
2012-07-23T23:56:28
|
|
expr: drop ExprResult from ResolveKeysym
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
0d262fa1
|
2012-07-23T19:52:17
|
|
expr: drop ExprResult from ResolveBoolean
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
27f94929
|
2012-07-23T15:46:50
|
|
expr: drop ExprResult from ResolveString
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
025ca579
|
2012-07-23T12:20:05
|
|
expr: drop ExprResult from ResolveLhs
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
761b675c
|
2012-07-23T11:56:13
|
|
expr: drop ExprResult from ResolveKeyName
Explicit is better than implicit, and this union makes it hard to follow
what's what, particularly the confusion with ival/uval.
The other Resolve functions will follow.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
724f62c8
|
2012-07-25T17:29:08
|
|
Convert defines to enums in xkbcomp.h
For statement / expression types.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
89723b7c
|
2012-07-24T19:54:14
|
|
utils: add/replace string equality macros
It's more tidy and less error prone, since we use strcasecmp == 0 a lot.
We replace strcmp == 0 by streq, strcasecmp == 0 by istreq,
uStrCasePrefix by istreq_prefix and uDupString by strdup_safe.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
112cccb1
|
2012-07-23T16:03:34
|
|
Some atom related optimizations
We often get a strdup'd string, just to pass it over the atom_intern and
then immediately free it. But atom_intern then strdup's it again (if
it's not interned already); so instead we can have the interning "steal"
the memory instead of allocing a new one and freeing the old one. This
is done by a new xkb_atom_steal function.
It also turns out, that every time we strdup an atom, we don't actually
modify it afterwards. Since we are guaranteed that the atom table will
live as long as the context, we can just use xkb_atom_text instead. This
removes a some more dynamic allocations.
For this change we had to remove the ability to append two strings, e.g.
"foo" + "bar" -> "foobar"
which is only possible with string literals. This is unused and quite
useless for our purposes.
xkb_atom_strdup is left unused, as it may still be useful.
Running rulescomp in valgrind, Before:
==7907== total heap usage: 173,698 allocs, 173,698 frees, 9,775,973 bytes allocated
After:
==6348== total heap usage: 168,403 allocs, 168,403 frees, 9,732,648 bytes allocated
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
c6279b8b
|
2012-07-23T21:21:03
|
|
expr: don't divide by zero
Calculator parser 101.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
2e245a9a
|
2012-07-23T11:42:22
|
|
expr: Remove ExprResolveFloat
Remnant from geometry.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
d659f2b4
|
2012-07-21T15:12:31
|
|
expr: use new log functions
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
50b25a12
|
2012-07-17T11:03:43
|
|
Use xkb_group_index_t for group variables throughout
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
7d9f0313
|
2012-07-15T13:00:04
|
|
Get rid of struct xkb_key_name
Just embed it directly.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
9308a460
|
2012-07-17T10:20:15
|
|
Run source tree through uncrustify
.uncrustify.cfg committed for future reference also, but had to manually
fix up a few things: it really likes justifying struct initialisers.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
7b00485a
|
2012-05-11T15:03:43
|
|
Rename 'ctx' back to 'context' in external API
Still keep things as 'ctx' internally so we don't have to worry about
typing it too often, but rename the user-visible API back as it was
kinda ugly.
This partially reverts e7bb1e5f.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
6433d72e
|
2012-05-09T20:12:12
|
|
Merge remote-tracking branch 'krh/keysyms'
Conflicts:
src/keysym.c
src/misc.c
src/text.h
src/xkbcomp/expr.c
src/xkbcomp/parser.y
src/xkbcomp/parseutils.c
src/xkbcomp/symbols.c
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
ace1e5df
|
2012-05-09T09:05:00
|
|
Use our own keysyms
|
|
e7bb1e5f
|
2012-05-09T15:03:11
|
|
Shorten context to ctx
(This breaks the API.)
"context" is really annoying to type all the time (and we're going to
type it a lot more :). "ctx" is clear, concise and common in many other
libraries. Use it!
Signed-off-by: Ran Benita <ran234@gmail.com>
[daniels: Fix for xkb -> keymap change.]
|
|
cdd2906d
|
2012-05-09T13:50:05
|
|
Make the context available for XkbcAtomText
And rename the function to xkb_atom_text.
Signed-off-by: Ran Benita <ran234@gmail.com>
[daniels: Updated for xkb -> keymap.]
|
|
8d680e80
|
2012-05-09T12:01:03
|
|
Make the context available for XkbcAtomGetString
In preparation of contextualizing atom handling.
Since we touch every function call, we also rename the function to
xkb_atom_strdup to match xkb_atom_intern, and be more descriptive.
Signed-off-by: Ran Benita <ran234@gmail.com>
[daniels: Updated for xkb -> keymap.]
|
|
38cb6390
|
2012-05-09T15:15:30
|
|
Change all 'xkb' xkb_keymap names to 'keymap'
To make it a bit more clear what it actually is.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
e1af48bc
|
2012-05-09T13:22:34
|
|
Rename keysym <-> string API
Change them to refer to the string representation of the keysym's name
as a name rather than a string, since we want to add API to get the
Unicode printable representation as well.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
33273304
|
2012-05-08T13:57:07
|
|
Rename xkbcomp/misc.h to xkbcomp-priv.h and use it
The include dependencies were quite convoluted, where you change the
order and get a ton of errors. Instead, change one file to act as the
internal interface for the xkbcomp files, and make every file use it.
Also drop the pointless "xkb" prefix to file names.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
a641a185
|
2012-04-06T03:38:55
|
|
Use stdbool.h
'Cause defining your own True and False is so 1990's.
Signed-off-by: Ran Benita <ran234@gmail.com>
[daniels: Fixed for xkb_desc -> xkb_keymap changes.]
|
|
a39ed85f
|
2012-04-05T11:24:39
|
|
Fix formatting in xkbcomp headers
Signed-off-by: Ran Benita <ran234@gmail.com>
[daniels: Fixed for xkb_desc -> xkb_keymap change.]
|
|
ef88c7ef
|
2012-04-03T15:14:16
|
|
Rename xkb_desc to xkb_keymap
struct xkb_desc was just a hangover from the old XkbDescRec, which isn't
a very descriptive name.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
bc8bbf50
|
2012-03-27T15:50:59
|
|
Fix build for X11 modifier masks
Exposed by include path changes, oops.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
602e8780
|
2012-03-24T13:27:48
|
|
Define our own NoSymbol value and use it
Since we have our own xkb_keysym_t type, it makes sense to have our own
NoSymbol value instead of the one from X11/X.h.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
d3908b63
|
2012-03-24T12:33:28
|
|
Define our own None atom value
Since we define our own xkb_atom_t type, it makes sense not to use the
X11/X.h None value. This way we can also remove a lot of X11 includes.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
f08ce9b7
|
2012-03-24T00:26:12
|
|
Use strcasecmp consistently instead of uStrCaseCmp
There's no use calling the same thing by a different name.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
9468d84a
|
2012-03-21T14:44:16
|
|
Fix (correct, but harmless) const warning
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
f44eed3e
|
2012-03-21T00:33:29
|
|
Remove unnecessary allocation in expr.c
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
937d4049
|
2012-03-15T09:33:56
|
|
Remove more float support
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
9dde0f33
|
2012-03-13T12:46:37
|
|
Revert "Use XKB_COMMON_* modifier defines in ExprResolveModMask"
Because indices and masks are not at all the same thing.
This reverts commit 645275406f47369c9a67d02173aedf89e9d2a33c.
|
|
64527540
|
2012-03-10T14:42:30
|
|
Use XKB_COMMON_* modifier defines in ExprResolveModMask
Rather than the ones from XKB.h.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
24c61d0f
|
2012-03-10T14:27:06
|
|
Remove half-implemented radio groups
It looks like this could never have worked anyway, what with num_rg
always being 0 everywhere. Remove it.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
a0e756fd
|
2012-03-09T19:09:25
|
|
Introduce xkb_atom_t type
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
0bb24c2d
|
2012-03-09T19:03:59
|
|
Introduce xkb_keysym_t type
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
ed18e65e
|
2012-03-05T15:07:28
|
|
Merge remote-tracking branch 'ran/fixes-cont'
Conflicts:
src/xkbcomp/expr.c
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
65e1ff2f
|
2012-03-05T15:00:39
|
|
Merge remote-tracking branch 'ran/fixes'
|
|
eb738b13
|
2012-03-02T17:40:19
|
|
Constify global tables
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
d2c3dd0c
|
2012-03-02T22:31:29
|
|
Constify some more text functions
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
266dfae5
|
2012-02-29T21:26:28
|
|
Remove useless casts
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
f3e4335f
|
2012-02-24T16:07:17
|
|
Fix all constness warnings
These are all trivial/obvious fixes which clear a bunch of warnings.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
a0dd0526
|
2012-02-25T11:46:12
|
|
Remove unused includes of "tokens.h"
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
90f04e04
|
2012-02-20T18:07:29
|
|
Perform bounds checking in ExprResolveLevel
Both callers perform the same bounds check, so move it into
ExprResolveLevel itself.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
1ab058bb
|
2012-02-20T17:47:46
|
|
Fix typo in ExprResolveKeyCode
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
e209fe31
|
2012-02-20T17:33:39
|
|
Perform bounds checking in ExprResolveGroup
Every caller did the exact same check on the group bounds after calling
ExprResolveGroup, so might as well do it inside.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
43ed3ff0
|
2012-02-20T17:14:04
|
|
Switch expression resolution priv from char to void
Avoids a lot of really lame casts.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
eb6d9a05
|
2012-02-20T17:09:06
|
|
Remove chaining support from LookupModMask
Turns out we never use it, so.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
11ea0791
|
2012-02-20T17:07:48
|
|
Invert LookupModMask/LookupVModMask order
We never want to solely lookup a virtual modifier without also looking
up core modifiers. So, rather than chaining the vmod lookup inside the
core modifier lookup, invert the ordering.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
1a2f2556
|
2012-02-20T17:00:51
|
|
Remove unused LookupPriv::priv
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
55e058f8
|
2012-02-20T16:59:51
|
|
Move some definitions from expr.h to expr.c
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
90d86c36
|
2012-02-20T16:54:54
|
|
Remove field reference lookup support
None of the lookup functions anyone ever used supported field
references, so don't pretend we do in the API.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
91b89852
|
2012-02-20T16:24:02
|
|
Turn ExprResolveInteger into a simple wrapper
Move the bulk of ExprResolveInteger into an internal function called
ExprResolveIntegerLookup, and introduce ExprResolveInteger as a simple
wrapper which doesn't take priv/lookup arguments.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
e314931e
|
2012-02-20T15:47:57
|
|
Add ExprResolveGroup helper
Just a dumb wrapper around ExprResolveInteger.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
8b47dbbf
|
2012-02-20T15:47:38
|
|
Add ExprResolveButton helper
Just a dumb wrapper around ExprResolveInteger.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
3431a089
|
2012-02-20T15:37:53
|
|
Introduce ExprResolveLevel helper
Which returns an integer representing the level number represented by
the given expression.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
193e9b39
|
2012-02-20T15:33:40
|
|
Introduce ExprResolveRadioGroup helper
Just a tiny special-cased version of ExprResolveInteger.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
26285a7b
|
2012-02-20T14:15:08
|
|
Remove priv arguments from ExprResolveString
They've never been used.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
b7b49eb0
|
2012-02-20T14:10:41
|
|
Remove priv arguments from ExprResolveKeySym
They've never been used by its one caller.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
70033b13
|
2012-02-20T14:08:55
|
|
Remove priv arguments from ExprResolveKeyName
They've never been used.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|