src


Log

Author Commit Date CI Message
Daniel Stone 93ce9c7d 2012-03-29T16:31:09 Full support for multiple keysyms per level Which also involved moving the global symbol map to be per-key instead; this should probably be split out into a separate commit. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 9cdc1990 2012-03-29T01:57:06 Parsing support for multiple keysyms per entry Instead of allowing only one keysym per level per group, do as the external API indicates and allow multiples. The existing syntax is: key <AD01> { [ q, Q ] }; where the new syntax is: key <AD01> { [ q, Q, { H, E, L, L, O }, { Y, E, S, space, T, H, I, S, space, I, S, space, D, O, G } }; to make the key in the extreme top left of the keyboard do pretty surprising things in levels 3 and 4. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 36b8771e 2012-03-29T01:49:55 Don't leak strings in merge declarations Introduced by the reentrant scanner commit. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone aa9f2bf9 2012-03-29T01:41:40 Don't leak include_paths in context Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 6628cf0b 2012-03-28T19:50:45 Remove unused rtrnValue declaration Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Ran Benita bb6ca768 2012-03-27T22:41:22 Make parser and scanner reentrant All global state is removed from the parser and scanner. This makes use of the standard facilities in Bison and Flex for reentrant/pure scanner/lexer and location tracking. Signed-off-by: Ran Benita <ran234@gmail.com> [daniels: Updated to current sources.]
Daniel Stone 034ffce6 2012-03-27T17:22:35 Use xkb_contexts in keymap compilation Primarily for the include path, but also for the logging in future. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 3e9dd751 2012-03-27T16:59:01 Add new context API Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone f0cb4ee2 2012-03-27T16:15:06 Update xkb_filter_group_lock_func for xkb_key_direction Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 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>
Ran Benita 3fa7fdd0 2012-03-23T17:50:37 Handle group lock actions The spec is simple here, as this action has no effect on key releases. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita b5efe41f 2012-03-24T04:48:31 Make build non-recursive Unify all the different Makefile.am into a single short top level one (the test/Makefile.am file is left intact though). This makes the build system simpler to look and should encourage unifying more currently-disparate code. Some further motivation can be found in this page: http://www.flameeyes.eu/autotools-mythbuster/automake/nonrecursive.html Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 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>
Ran Benita 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>
Ran Benita 2165e16e 2012-03-24T02:36:11 Fix all -Wsign-compare warnings i.e comparison of signed and unsigned values. These are mostly harmless but fixing them allows to compile cleanly with -Wextra. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 813ddf25 2012-03-24T00:29:33 Silence -Wcast-qual warnings There are some cases where we must free a string with a const qualifier. Add a macro UNCONSTIFY to trick the compiler into silencing the warning in the cases where we know what we're doing. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 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>
Ran Benita 3104a8ef 2012-03-24T00:12:08 Move utility macro from XKBcommonint.h to utils.h And merge all the similar ones into the same name. The u* prefix is chosen over the _Xkb prefix because it has more uses throughout the codebase. But It should now be simple to choose a nice prefix and stay consistent. Signed-off-by: Ran Benita <ran234@gmail.com> [daniels: fixed for the case where we have strcasecmp]
Ran Benita 2a5f6416 2012-03-23T23:56:44 Remove some more useless stuff Some unused defines and geometry-removal leftovers (specifically the file geom.c and the struct for the keyboard coordinates). Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 861b0c79 2012-03-23T23:47:26 Rewrite recalloc to the correct type The recalloc function should be expressed in terms of bytes to match its name. However uTypedRecalloc retains its type so nothing is changed. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 0480f427 2012-03-23T23:28:24 Remove useless stuff from utils Signed-off-by: Ran Benita <ran234@gmail.com> [daniels: fixed conflicts from strcasecmp, added includes to make filecomp build again]
Daniel Stone 2ac8610f 2012-03-27T14:06:56 Remove fallback strcasecmp/strncasecmp Sorry if your libc doesn't have this, but it's not my problem. Signed-off-by: Daniel Stone <daniel@fooishbar.org> Reported-by: Ran Benita <ran234@gmail.com>
Ran Benita d22b8dbb 2012-03-23T22:25:47 Move utils.{c,h} to be used by the entire project This is a first step for making consistent use of utils.h also outside of xkbcomp/ . Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 7cc17ec5 2012-03-23T23:39:12 Fix a scanf type mismatch "%o" takes an unsigned int. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 1b17708c 2012-03-24T02:33:18 Fix incorrect usage of && instead of & Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 6f7478d7 2012-03-24T02:56:38 Fix latin8 upper/lower case check GCC complained: misc.c:235:13: warning: logical 'and' of mutually exclusive tests is always false [-Wlogical-op] misc.c:248:13: warning: logical 'and' of mutually exclusive tests is always false [-Wlogical-op] Looking at keysymdef.h shows that the check is indeed wrong. This commit updates the check to match the latin8 section of keysymdef exactly. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 3b22373f 2012-03-23T17:48:35 Properly free xkb_state's Signed-off-by: Ran Benita <ran234@gmail.com>
Daniel Stone 389c2db1 2012-03-27T13:44:48 Remove internal API from xkbcommon.h And move it to XKBcomminint.h. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
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 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 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 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>