src


Log

Author Commit Date CI Message
Daniel Stone ede84734 2012-03-27T12:11:45 Add enum xkb_key_direction instead of bool Use XKB_KEY_UP instead of 0 and XKB_KEY_DOWN instead of 1. Signed-off-by: Daniel Stone <daniel@fooishbar.org> Reported-by: Ran Benita <ran234@gmail.com>
Daniel Stone 7f471a70 2012-03-27T12:07:57 Add state serialisation API Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 83b8b4b5 2012-03-27T12:07:40 Cosmetic coding style fixups Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone d039622a 2012-03-22T17:39:12 Rename keymap allocation API Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 3d672fcf 2012-03-22T14:32:53 Add LED state API And also convert state.c to use the state API for mods and groups, rather than testing the state members directly. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone b6c79ad0 2012-03-22T14:32:23 LEDs: Fix string comparison bug This resulted in duplicate sets of modifiers, since we were comparing pointer equality of two strings, rather than string equality. Oops. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 504cc0b8 2012-03-22T14:31:33 Check for invalid indices in mod/group state API Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone cfb07724 2012-03-22T14:30:58 Fix documentation bugs with mod/group state API Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone edcaab65 2012-03-21T15:25:32 Round out new state API Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 9468d84a 2012-03-21T14:44:16 Fix (correct, but harmless) const warning Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone ecea0d71 2012-03-21T02:20:07 Add new state API Add new API to deal with xkb_state objects, including xkb_state_update_key, which runs the XKB action machinery internally to calculate what exactly happens to the state when a given key is pressed or released. The canonical way to deal with keys is now: struct xkb_state *state = xkb_state_new(xkb); xkb_keysym_t *syms; int num_syms; xkb_state_update_key(state, key, is_down); num_syms = xkb_key_get_syms(state, key, &syms); More state handling API, including a way to get at or ignore preserved modifiers, is on its way. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 272ccbf4 2012-03-21T02:19:44 Remove some rogue fprintfs Oops. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 1afc6fca 2012-03-21T02:17:58 Don't clear real mods in action modmask Previously, we would clear out the real modmask when updating the modmask for action maps, if not using the key's modmask. The correct behaviour here is instead to use the key's modmask if using the modmap, else use the real mods provided with the action originally. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone f44eed3e 2012-03-21T00:33:29 Remove unnecessary allocation in expr.c Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone bcd811ce 2012-03-20T17:24:09 Small constification Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 3d31be5f 2012-03-16T14:27:39 Also print group name in keysym error Unfortunately we can't get the actual file it was defined in this far down, but at least give the human-readable name rather than just a group index. Also, groups are not zero-indexed, such that index 0 is group 1; fix that too. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 7dbd3040 2012-03-16T14:22:04 More useful errors for invalid keysyms Instead of generating a fairly droll internal error, generate a warning also telling us exactly where the bad definition was. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone f40e0790 2012-03-16T13:59:24 Fix non-useModMapMods action masks By ensuring their mask is only the vmods, rather than also potentially including the key's modmap. Also remove the unnecessary vmodmask indirection. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 94521658 2012-03-15T09:34:20 Plug leaks in geometry parsing When parsing a geometry file, don't leak the elements we've created. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 937d4049 2012-03-15T09:33:56 Remove more float support Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 3560bf7b 2012-03-15T08:36:09 Also update vmod -> indicator maps Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 0e0b5b00 2012-03-14T18:24:37 Update modifiers after building keymap The server used to have to go and do this on our own, but we can do better than that: after we've compiled the keymap, go through and bind virtual modifiers to everything that needs it. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 62444a11 2012-03-14T17:06:09 Convert interp action from xkb_any_action to xkb_action Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 4e704e7f 2012-03-14T17:05:09 Add xkb_get_syms_by_level Which allows you to pass in a group and a level rather than a fully-formed state. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 3d38da0c 2012-03-14T17:04:36 Fix leak in xkbcomp.c Accidentally regressed this one briefly, oops. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 54aa839c 2012-03-14T11:59:52 Remove component listing code Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone bc074525 2012-03-13T19:06:05 Add xkb_key_get_syms API (And a slight cosmetic header reformatting.) Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 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.
Daniel Stone 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>
Daniel Stone f9b3a14e 2012-03-10T14: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>
Daniel Stone 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>
Daniel Stone 671ab1bf 2012-03-10T13:54:03 Handle XkbFiles without a name Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone c8fd3ea4 2012-03-10T13:48:13 Move allocation of xkb_desc into CompileKeymap Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 17bcc4c1 2012-03-09T19:29:29 Remove geometry even harder Not the most elegant fix, but will do for now. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone a0e756fd 2012-03-09T19:09:25 Introduce xkb_atom_t type Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 0bb24c2d 2012-03-09T19:03:59 Introduce xkb_keysym_t type Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone d67a94d3 2012-03-09T18:57:14 Remove atom functions from public API They're no longer needed since we don't expose any atoms in the published API anymore. As a result, we don't need to support external atom implementations either. Result! Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 731e5c40 2012-03-09T18:53:47 Stringify public name types Ensure that all names under xkb_desc are strings, rather than atoms. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 57b551a4 2012-03-09T18:46:46 Ensure we always have a complete keymap Refuse to compile without keycodes + compat + types + symbols. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 4bc451bf 2012-03-09T16:55:37 Convert CompileKeymap to early-return style Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 59e03bf5 2012-03-09T16:54:47 Use compile_keymap in xkb_compile_keymap_from_components We already had this exact function sitting right next to us, so use it rather than open-coding. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 73919568 2012-03-09T16:32:45 Add explicit braces Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone aa41ab29 2012-03-09T16:31:48 xkbcomp: Turn an array into an anonymous struct Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone ed5c6c17 2012-03-09T16:26:34 Remove geometry support, again It still parses geometry, but happily throws it away. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone b28823cc 2012-03-09T16:04:00 Remove KcCGST names from the map Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 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>
Daniel Stone 65e1ff2f 2012-03-05T15:00:39 Merge remote-tracking branch 'ran/fixes'
Ran Benita c800c60a 2012-03-01T19:25:37 Don't leak ActionInfo's Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita d67e73bd 2012-03-01T00:10:37 Don't leak KeyNamesInfo Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 5c40bee6 2012-02-29T21:57:15 Don't leak the "minimum"/"maximum" string Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita c50c87bc 2012-03-01T21:26:25 Don't leak the various *Info's names when overriding them Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 889a299e 2012-03-02T14:49:36 Free XkbFile's when no longer needed Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita c357a11a 2012-03-01T21:20:45 Add function to free XkbFile's Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita e4b4d6b0 2012-03-03T23:42:44 Fix "Could not resolve keysym" errors On many layouts, the following error appears: Internal error: Could not resolve keysym 10005b0 (Which is like the trademark of libxkbcommon now, and makes unicode-heavy symbol files pretty useless). This occurs when a keysym string (in this case, 10005b0) is passed to xkb_string_to_keysym, but cannot be resolved. This in turn happens because the parser passes on hexadecimal keysym strings without the leading "0x", thus leaving the resolving function without a way to disambiguate it as a number. Therefore, make sure to pass on the "0x". The file symbols.c in xkbcomp project does the same; it probably got lost in translation. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 2473444f 2012-03-03T22:43:50 Refactor XkbFindFileInPath Also fixes a bug, where the check (typeLen < 1) should have been (pathLen < 1). Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 19e99bb2 2012-03-01T20:41:34 Free all atoms along with keymap The code to do this is taken from xserver, dix/atom.c. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita d94d9b45 2012-03-01T21:03:37 Free IncludePath when no longer needed Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 1e6f956e 2012-03-01T21:03:13 Free scanFile when no longer needed Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita e4447f81 2012-03-03T01:17:21 Fix other misc leaks Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 30d88b93 2012-03-01T20:44:42 Don't leak the scanner's buffer Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita c24d97e4 2012-03-01T19:45:37 Don't leak DoodadInfo's from GeometryInfo Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 3216ecc0 2012-02-24T10:46:41 Don't cache loaded rules files This needlessly occupies memory for the lifetime of the library, and does not make a noticeable difference otherwise. This rules file won't be loaded more than once in most cases anyway, so just load it again when it happens. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita ca9829ea 2012-02-24T09:59:25 Don't cache parsed files This needlessly occupies memory for the lifetime of the library, and does not make a noticeable difference otherwise. Instead, just parse the same file again when it happens. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita a64e9708 2012-03-02T15:56:03 Remove unneeded freeing mechanisms Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita c7bf3687 2012-03-02T22:36:32 Make the sections array local to the keymap compiling function Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita baf6a677 2012-03-02T22:34:14 Remove unused global type tokens Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita f549ce07 2012-03-02T17:25:58 Use global tables for action string handling Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita d2c3dd0c 2012-03-02T22:31:29 Constify some more text functions Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita eb738b13 2012-03-02T17:40:19 Constify global tables Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita a0b44235 2012-03-02T16:12:18 Use limits.h to find min/max short value Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 266dfae5 2012-02-29T21:26:28 Remove useless casts Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 1616b864 2012-03-03T01:15:56 Use strchr instead of index Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 4bc839ab 2012-02-29T20:50:17 Use memset instead of bzero Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita a3e40917 2012-03-01T23:43:51 Remove return's at the end of void functions Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita f278cea1 2012-02-29T20:25:11 Remove all uses of the register keyword Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita f4242512 2012-02-29T20:12:17 Use strdup instead of strlen + malloc + strcpy Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 6a34e4e1 2012-02-29T19:56:39 Don't check for NULL before free() Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita c41061a0 2012-02-23T19:26:33 Use yacc-generated header instead of tokens.h The yacc implementation can generate all the necessary token definitions itself; there is no need to maintain a hand written file for that. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 0d8874d0 2012-02-26T00:03:24 makekeys: update to match the rest of libX11 makekeys This integrates two commits from libX11: ebd6ef0a4db0ddef0ae17ad14571518ccdeea5ba XStringToKeysym: Special case for XF86 keysyms Some XFree86 keysyms were in XKeysymDB as XF86_foo, despite really being XF86foo. So, if we get to the bottom of XStringToKeysym and haven't found our XF86_foo, try it again as XF86foo. Signed-off-by: Daniel Stone <daniel@fooishbar.org> Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> 00175397480b76d32bf82b0c7c94c91a2a95954e makekeys: Scan vendor keysyms as well as core Since we can't really live without vendor keysyms, scan them all in to generate ks_tables.h, rather than only doing the core ones, and leaving the vendor syms to be manually synchronised with XKeysymDB. Signed-off-by: Daniel Stone <daniel@fooishbar.org> Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> Notice that the xkey.sh test is changed to match libX11 behavior, i.e. XKeysymToString(0x1008FE20) -> "XF86Ungrab" as opposed to "XF86_Ungrab". Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita ad4f195e 2012-02-25T23:17:47 makekeys: Receive the keysym files as arguments Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 04e687c9 2012-02-25T21:09:28 makekeys: Fix build/target word size mismatch when cross-compiling This matches commit 24283d40b1e4314c6647dda49d2a159833341a8b from libX11: Since makekeys is built using build environment's compiler and runs natively, we have to make sure that the size of the Signature type is the same on both the native environment and the target, otherwise we get mismatches upon running X, and some LSB test failures (xts5). Use an unsigned 32-bit integer on all platforms. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com> Reviewed-by: Daniel Stone <daniel@fooishbar.org> Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 744527e9 2012-02-24T16:10:06 Fix remaining warnings Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita eff72fab 2012-02-25T11:53:01 Fix warnings in scanner and parser Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 1d969c5c 2012-02-24T16:08:55 Fix an incorrect sizeof Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 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>
Ran Benita cca1c050 2012-02-24T16:03:44 Fix possible null dereferences Fix all reported null dereferences from clang-analyzer. There seems to be one false negative (in file indicators.c), but it is fixed anyway. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 9005624f 2012-02-24T16:00:10 Remove unneeded assignments and variables Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita a0dd0526 2012-02-25T11:46:12 Remove unused includes of "tokens.h" Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 9ad0be33 2012-02-24T10:04:16 Remove unused debug #defines Signed-off-by: Ran Benita <ran234@gmail.com>
Daniel Stone 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>
Daniel Stone 1ab058bb 2012-02-20T17:47:46 Fix typo in ExprResolveKeyCode Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 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>
Daniel Stone 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>
Daniel Stone 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>
Daniel Stone 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>
Daniel Stone 1a2f2556 2012-02-20T17:00:51 Remove unused LookupPriv::priv Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 55e058f8 2012-02-20T16:59:51 Move some definitions from expr.h to expr.c Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 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>
Daniel Stone 590df28c 2012-02-20T16:35:39 Move groupNames mask definition to its user groupNames was declared in compat.c as a global to anything which included compat.h (for which groupNames was its sole reason to exist), but only ever used in indicators.c. Which is kind of fortunate, given that e314931e removed identical definitions of groupNames (as integers, not masks) from both action.c and symbols.c. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 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>