kc3-lang/libxkbcommon/src/xkbcomp/action.c

Branch :


Log

Author Commit Date CI Message
6b75dd2d 2012-08-05 19:38:31 Fix virtual modifiers mask extraction The calculations were performed incorrectly in several places, specifically shifting by 16 instead of 8 (= XkbNumModifiers) and masking with 0xff instead of 0xffff. More stuff that probably never worked as intended. This also makes these more grep-able when we remove the vmods/real_mods separation. Signed-off-by: Ran Benita <ran234@gmail.com>
4c00278c 2012-08-02 01:09:41 Remove xproto build dependency Very little left to do for this. Signed-off-by: Ran Benita <ran234@gmail.com>
b804aec2 2012-08-03 00:20:07 action: drop global actionInitialized The action.c needs to use two constant Expr values, constTrue and constFalse. To do this is keeps to static globals Expr's of type boolean and the values "true" and "false" which need to be interned (and thus context specific). The interning means they can't be made static const, so there's a global flag and initializer function. Instead of using this unsafe global state, we can simply use an integer boolean expression (1 and 0) instead of a string one ("true" and "false") and make them const. Signed-off-by: Ran Benita <ran234@gmail.com>
6f08a2cf 2012-08-03 00:33:40 expr: constify function arguments We need this for later. Signed-off-by: Ran Benita <ran234@gmail.com>
41d9afc5 2012-07-27 15: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>
bd927abf 2012-07-24 19:39:59 expr: drop ExprResult from ResolveEnum Signed-off-by: Ran Benita <ran234@gmail.com>
38614c88 2012-07-24 17:21:29 expr: drop ExprResult from ResolveMask Signed-off-by: Ran Benita <ran234@gmail.com>
27f94929 2012-07-23 15:46:50 expr: drop ExprResult from ResolveString Signed-off-by: Ran Benita <ran234@gmail.com>
025ca579 2012-07-23 12:20:05 expr: drop ExprResult from ResolveLhs Signed-off-by: Ran Benita <ran234@gmail.com>
2e4933cd 2012-07-24 10:39:15 expr: drop ExprResult from ResolveInteger Signed-off-by: Ran Benita <ran234@gmail.com>
d5682289 2012-07-24 01:22:26 expr: drop ExprResult from ResolveButton Signed-off-by: Ran Benita <ran234@gmail.com>
e258f9ee 2012-07-24 00:10:07 expr: drop ExprResult from ResolveGroup Signed-off-by: Ran Benita <ran234@gmail.com>
0d262fa1 2012-07-23 19:52:17 expr: drop ExprResult from ResolveBoolean Signed-off-by: Ran Benita <ran234@gmail.com>
761b675c 2012-07-23 11: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-25 17:29:08 Convert defines to enums in xkbcomp.h For statement / expression types. Signed-off-by: Ran Benita <ran234@gmail.com>
89723b7c 2012-07-24 19: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>
4f843c81 2012-07-24 13:24:59 Drop Xkbc prefix of text functions Not really needed and inconsistent. Signed-off-by: Ran Benita <ran234@gmail.com>
6cb98200 2012-07-24 13:15:40 Use xkb_mod_mask_t and xkb_mask_index_t throughout Signed-off-by: Ran Benita <ran234@gmail.com>
74be1762 2012-07-23 21:30:28 Remove alloc.{c,h} These functions are more appropriate elsewhere now. Signed-off-by: Ran Benita <ran234@gmail.com>
112cccb1 2012-07-23 16: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>
d659f2b4 2012-07-21 15:12:31 expr: use new log functions Signed-off-by: Ran Benita <ran234@gmail.com>
e037f518 2012-07-21 14:53:49 action: use new log functions Signed-off-by: Ran Benita <ran234@gmail.com>
8b0e9f92 2012-07-20 13:07:30 utils: remove uTypedAlloc/Calloc Signed-off-by: Ran Benita <ran234@gmail.com>
50b25a12 2012-07-17 11:03:43 Use xkb_group_index_t for group variables throughout Signed-off-by: Ran Benita <ran234@gmail.com>
dfa0929c 2012-07-16 22:15:43 Convert macros to inline functions Signed-off-by: Ran Benita <ran234@gmail.com>
d0097f4e 2012-07-15 15:55:34 Pass around xkb_key's instead of keycodes This way we don't need to look up the key every time. We now only deal with keycodes in the public API and in keycodes.c. Also adds an xkb_foreach_key macro, which is used a lot. Signed-off-by: Ran Benita <ran234@gmail.com>
7d9f0313 2012-07-15 13:00:04 Get rid of struct xkb_key_name Just embed it directly. Signed-off-by: Ran Benita <ran234@gmail.com>
81d029f5 2012-07-15 11:52:54 Replace xkb_keycode_t 'key' variable name by 'kc' We want to reserve the name 'key' for something else. Signed-off-by: Ran Benita <ran234@gmail.com>
9308a460 2012-07-17 10: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-11 15: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>
e7bb1e5f 2012-05-09 15: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-09 13: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-09 12: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.]
c117318f 2012-05-09 11:47:20 Make the context available to xkb_intern_atom In preparation of contextualizing the atom table. Since we touch every function call, also rename the function to xkb_atom_intern, to match better with the rest (which will also be renamed). Signed-off-by: Ran Benita <ran234@gmail.com> [daniels: Fixed for 'xkb' -> 'keymap'.]
38cb6390 2012-05-09 15: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>
33273304 2012-05-08 13: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>
12b3495d 2012-04-11 01:55:50 Remove unused 'which' and 'merge' arguments Signed-off-by: Ran Benita <ran234@gmail.com> [daniels: Updated for xkb_desc -> xkb_keymap changes.]
a641a185 2012-04-06 03: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-05 11:24:39 Fix formatting in xkbcomp headers Signed-off-by: Ran Benita <ran234@gmail.com> [daniels: Fixed for xkb_desc -> xkb_keymap change.]
b1e49ff9 2012-04-06 04:33:43 Reformat actionHandler dispatch table Signed-off-by: Ran Benita <ran234@gmail.com>
ef88c7ef 2012-04-03 15: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>
c83043b3 2012-03-31 01:26:15 Make temporary fix for stale xkb_atoms When xkb_free_keymap is called the atoms are all free'd, but action.c keeps a global copy of interned "true" and "false", which remains stale. The correct fix is to remove the need for the ActionsInit function entirely. Signed-off-by: Ran Benita <ran234@gmail.com>
bc8bbf50 2012-03-27 15: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-24 13: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-24 12: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-24 00: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>
f9b3a14e 2012-03-10 14:36:30 Remove overlay support as well Right now we just silently ignore overlay controls, which is probably bad, but it's not the easiest to fix. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
f549ce07 2012-03-02 17:25:58 Use global tables for action string handling Signed-off-by: Ran Benita <ran234@gmail.com>
eb738b13 2012-03-02 17:40:19 Constify global tables Signed-off-by: Ran Benita <ran234@gmail.com>
4bc839ab 2012-02-29 20:50:17 Use memset instead of bzero Signed-off-by: Ran Benita <ran234@gmail.com>
a3e40917 2012-03-01 23:43:51 Remove return's at the end of void functions Signed-off-by: Ran Benita <ran234@gmail.com>
f3e4335f 2012-02-24 16: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-25 11:46:12 Remove unused includes of "tokens.h" Signed-off-by: Ran Benita <ran234@gmail.com>
e209fe31 2012-02-20 17: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>
90d86c36 2012-02-20 16: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-20 16: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-20 15:47:57 Add ExprResolveGroup helper Just a dumb wrapper around ExprResolveInteger. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
8b47dbbf 2012-02-20 15:47:38 Add ExprResolveButton helper Just a dumb wrapper around ExprResolveInteger. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
26285a7b 2012-02-20 14:15:08 Remove priv arguments from ExprResolveString They've never been used. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
70033b13 2012-02-20 14:08:55 Remove priv arguments from ExprResolveKeyName They've never been used. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
482d4faa 2012-02-20 13:44:27 Remove priv arguments from ExprResolveBoolean They've never been used. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
67605d2c 2012-02-20 13:32:09 Introduce ExprResolveVModMask Which is just a slightly more typesafe wrapper around the chained ExprResolveModMask everyone was using earlier. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
4e228511 2012-02-15 14:34:08 Introduce xkb_keycode_t for keycodes And use it consistently everywhere, including with a special long-safe internal keycode type, to ease the transition to large keycodes. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
a63e82be 2010-12-17 21:14:54 Rename XkbcInternAtom() to xkb_intern_atom() and export Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
12569157 2010-10-20 15:57:45 Restore compatible action structs This unbreaks the X server code to serialize an xkb_desc, but loses the 32 bit vmod fields. Needs some work...
73ca959d 2010-09-27 16:05:52 Dead code removal and static markup Signed-off-by: Adam Jackson <ajax@redhat.com>
b3805a23 2010-07-02 12:26:43 Get rid of a few unused #defines in public header
9f602686 2010-07-01 14:35:24 Pull in enough structs and defines from XKBstr.h to only need XKB.h We want to move away from sharing implementation structs and let libX11 and libxkbcommon use each their own set of structs.
e10e16ad 2010-06-30 17:20:56 Constify XkbcAtomText() Atoms aren't mutable and this lets us put tbGetBuffer() back in the box.
a76df865 2010-06-30 16:33:25 Use the right action structs We were casting the union members to the wrong action structs (from kbproto).
1723ef1b 2010-06-30 15:48:39 Copy over missing action structs from kbproto
9258cc3d 2010-06-30 13:31:21 Rename Xkbc*Action to struct xkb_*_action
15b0db54 2010-06-17 05:56:08 Copy in XkbCompatMapRec and XkbSymInterpretRec These contain actions, so transition them ahead to XkbcAction and move them into XKBcommon.h. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
d2d787df 2010-06-17 00:51:49 Regroup actions into current vs. deprecated, resize vmod Use Xkbc* for all our actions that we intend to keep around, and Xkb* for deprecated ones we can hopefully get rid of, at least internally. While we're at it, make vmods be a uint32_t. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
ad0a3d7c 2010-06-15 15:20:32 xkbcomp: Don't leak atom text and string exprs Signed-off-by: Daniel Stone <daniel@fooishbar.org>
6a84a34d 2009-04-08 07:46:25 Remove all non-public API from XKBcommon.h header The noble intention was to expose all the new API and new generic types in the split out kbproto headers through XKBcommon.h. It turns out that would be a massive amount of work in the server. Someday, but first just wedging in XkbCompileKeymap* would be good. Most of the API is in new internal xkb*.h headers. In order to allow the XKBcommon.h header to be used from the server, we can't pull in other headers from kbproto since the server has its own copies. However, types that are different (XkbDescRec, XkbAction) still have Xkbc equivalents here, and I think they should be used in the server.
8b100fc0 2009-04-05 15:15:20 Add action datatypes as defined in the server Some of the XkbAction types are defined differently in the server, so we add those to XKBcommon.h and use them here like XkbcDescPtr. We'll have to deal with the impedance mismatch on the client side later.
5c910623 2009-04-04 09:19:51 Remove trailing spaces in source files
a27e56b6 2009-03-31 07:21:20 xkbcomp: Remove duplicated macros
2671b777 2009-03-28 14:06:26 Add more *Text functions from xkbfile This should cover all the usage in xkbcomp. The format arguments were dropped except for the special case of XkbModMaskText, which needs to write in XkbCFile format in HandleVModDef. This was just changed to a Bool to avoid the need for the macros in XKBfile.h. The function prefixes have been renamed to be unique from xkbfile.
8544cde5 2009-03-28 06:56:26 xkbcomp: Drop unused Display argument in Atom functions The xkbcommon Atom implementation doesn't take Display into account.
d5a9be65 2009-03-27 20:32:33 libxkbcomp: Drop unused format field for *Text functions
4fe322aa 2009-03-27 20:13:22 libxkbcomp: s/XPointer/char */ Replace XPointer with its definition since we don't have the privilege of using Xlib.h. Why this is char * and not void *, I'll never know.
18337008 2009-03-27 20:58:27 libxkbcomp: Use the internal Atom implementation s/XkbInternAtom/XkbcInternAtom/ and s/XkbAtomGetString/XkbcAtomGetString/
37769b5a 2009-03-27 20:01:32 libxkbcomp: s/XkbDescPtr/XkbcDescPtr/ We need to use the keyboard description structure from XKBcommon.h since it doesn't have the Display field.
0c1bbb05 2009-03-27 06:55:32 Import xkbcomp sources for CompileKeymap A copy of the xkbcomp sources (except the frontend) have been copied in to provide a means to compile a XkbDescPtr. This definitely doesn't build or do the right thing yet.