Branch :
| Author | Commit | Date | CI | Message |
|---|---|---|---|---|
| d3d55f1c | 2014-02-12 11:07:39 | darray: fix indentation Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 5bd273a7 | 2012-11-27 10:42:15 | vmod: bring back support for direct vmod -> real mod mapping This brings back the functionality that was removed in b9c87eb710ba4a86455601ca8c5a516b25e20366. Though it is not used in xkeyboard-config, from our current perspective it can be quite useful to be able to set the mappings directly, thus sidestepping the ugly and legacy-ridden modifier_map statement. Here's an example of how to get rid of modifier_map statements (though that would break core-X11 applications, since they must have the mappings through keysyms): virtual_modifiers NumLock = Mod2; virtual_modifiers Alt = Mod1; // Would be nice to map these to Alt, but that would be // incompatible with xkbcomp and somewhat complicated virtual_modifiers LAlt = Mod1; virtual_modifiers RAlt = Mod1; virtual_modifiers LevelThree = Mod5; virtual_modifiers RControl = Control; virtual_modifiers LControl = Control; virtual_modifiers Super = Mod4; virtual_modifiers Meta = Mod1; virtual_modifiers Hyper = Mod4; virtual_modifiers AltGr = Mod5; virtual_modifiers LShift = Shift; virtual_modifiers RShift = Shift; Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| e55a0cea | 2013-10-27 20:10:15 | Move src/xkbcomp/scanner-utils.h to src/ As we'll use it for things unrelated to xkbcomp. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 28d5f770 | 2014-02-10 20:33:34 | scanner: sort out scanner logging functions First, make the rules and xkb scanners/parsers use the same logging functions instead of rolling their own. Second, use the gcc ##__VA_ARGS extension instead of dealing with C99 stupidity. I hope all relevant compilers support it. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| c4259ff2 | 2014-02-10 15:18:22 | rules: always %-expand kccgst values Previously the early-exit codepath might have left some values unexpanded, and we'd go looking for e.g "%l%(v)". Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 2ecc0f83 | 2014-02-10 13:06:22 | context: add xkb_context_sanitize_rule_names() We want all the default logic in a test, so encapsulate it in this function, and make all the get_default_* functions static. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| c11f05e0 | 2014-02-10 11:16:37 | rules: print full path in error messages There can be multiple include paths. But it's nicer in any case. This also makes scanner_error actually use log_err instead of log_warn - oops. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 537564cb | 2014-02-10 11:11:27 | rules: include the path in failed-to-map error message Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 043eda87 | 2014-02-10 12:24:50 | context: fix wrong VARIANT instead of LAYOUT getenv Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 16aab829 | 2014-02-09 23:21:19 | ast: remove unneeded 'ctx' param to XkbFileCreate Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 8be2608a | 2014-02-09 18:02:11 | x11: don't trust keycode before testing its range The assert is not very useful access the key just before. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 27a24589 | 2014-02-09 17:49:30 | keymap: reduce padding in struct xkb_sym_interpret Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 71a25931 | 2014-02-09 17:18:08 | symbols: steal keys and modmaps when merging if possible Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| a7d753e4 | 2014-02-09 17:17:13 | compat: steal interps and leds when merging if possible Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 35cab168 | 2014-02-09 16:49:45 | types: steal types when merging if possible Like we do everywhere else. Removes some unnecessary allocations and copying. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 3923aa71 | 2014-02-09 11:27:34 | doc: move some file comments into txt files in doc/ Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| e89516e9 | 2014-02-09 13:51:38 | state: check wrap_group_into_range() return value It returns XKB_LAYOUT_INVALID in case num_groups == 0. So we shouldn't just save it in the state. Note, though, that this condition is generally impossible. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| d53eef0d | 2014-02-09 10:27:45 | x11: add 0 < ctrls->numGroups <= 4 assertion This only happens if something is wrong in the server; a valid keymap cannot be had in any case. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 3d56aa3e | 2014-02-08 17:58:39 | keysym: use safe keysym comparison function Instead of thinking about signed <-> unsigned an whatnot. bsearch() is inline in glibc, so gcc optimizes this away anyway. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 68b03097 | 2014-02-08 17:22:14 | scanner: make line and column unsigned Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| cf513f70 | 2014-02-08 17:15:37 | rules: get rid of struct location Use the scanner token_{line,column} like we do in the other places. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 973b8fd4 | 2014-02-08 16:40:20 | api: deprecate XKB_MAP_COMPILE_PLACEHOLDER, and use KEYMAP instead of MAP The PLACEHOLDER was not meant to be used, but c++ doesn't like passing 0 to enums, so it was used. For this reason we add all the NO_FLAGS items, so the PLACEHOLDER shouldn't be used anymore. Second, XKB_MAP is the prefix we used ages ago, KEYMAP is the expected prefix here. So deprecate that as well. The old names may still be used through the xkbcommon-compat.h header, which is included by default (no need to include directly). Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 8cc9434f | 2014-02-08 16:38:18 | x11: make sure not to use compat header src/keymap.h already defines the necessary header guard, so just reverse the include order. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| ac42103b | 2014-02-08 16:25:22 | x11: make some #defines unsigned Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 8fcb44b8 | 2014-02-08 16:18:16 | x11: fix truncation of xkb controls mask off the wire It's uint32_t, not uint16_t, so we were losing flags (not that it matters in this case). Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| f5465b56 | 2014-02-08 16:12:09 | x11: make msb_pos return unsigned It was initially returning -1 for all-zero arguments, but now it returns 0. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| a088c9ba | 2014-02-08 16:03:06 | keysym: fix types in bin_search Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 04bacf87 | 2014-02-08 15:53:50 | state: optimize xkb_state_led_update_all() Before: ran@ran:~/src/libxkbcommon$ ./test/bench-key-proc ran 20000000 iterations in 6.623018074s After: ran@ran:~/src/libxkbcommon$ ./test/bench-key-proc ran 20000000 iterations in 4.762291091s Not that anyone needs to process millions of keys per second... Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 769b91c5 | 2014-02-08 15:30:05 | Use (1u << idx) instead of (1 << idx) where appropriate It doesn't matter (I think), since the implicit conversion doesn't have any effect (e.g. sign-extension). But it's better to be aware of the type. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 50b73ec0 | 2014-02-08 15:10:09 | Use unsigned int for saving darray_size return value See: b9b3593cbdeb7f5b02d50cecaba6a0b47d4979ad So these should be unsigned int's now. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| e2c336cb | 2014-02-08 15:06:28 | action: fix misleading cast The type is uint8_t and so is the checked range. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| bbd2a9c0 | 2014-02-08 15:05:05 | action: fix printing of underflowed value in error message Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 27e20662 | 2014-02-08 12:31:21 | scanner-utils: add some likely/unlikely annotations Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 10643d8a | 2014-02-08 12:29:51 | Define likely()/unlikely() macros It serves as nice "hotspot" annotations, and can also help things, so why not. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 0e20cfed | 2014-02-08 02:01:17 | Partially revert "ast: pack the ParseCommon struct" This reverts commit 1e6e5669c6229846830f0b497591de4e3cf588eb. It's probably safe, but let's not take any chances, as I don't have any esoteric arch to test on. But keep the ATTR in case it's ever useful. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 6ea15719 | 2014-02-08 01:26:35 | ast: use more suitable types in a few ast nodes The int ones cannot be signed (they come as such from the scanner, and NEGATE is never applied to them). The uint32_t one is really an atom, but presumably the type was never converted to xkb_atom_t. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| b9b3593c | 2014-02-08 01:13:50 | darray: use unsigned int instead of size_t for array size size_t is too large; if we ever need it, that's the least of our problems. Besides, when we roll our own (e.g. in keymap.h) it's already unsigned int. Instead, add some emergency overflow check. So, why? - It plays nicer with all the other uint32_t's and unsigned int's (no extensions, etc.). - Reduces keymap memory usage by 5% or so as a bonus. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 623b10f8 | 2014-02-08 00:27:54 | Fix sign-compare warnings Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 893f0130 | 2014-02-08 00:18:32 | symbols: reduce some loop iterators scope Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 5547a82f | 2014-02-07 21:12:53 | parser: fix unrecognized keysym handling Integer may be negative, so also need to test >= 0. Also, $$ was left uninitialized if the keysym wasn't recognized. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 5dbd1364 | 2014-02-07 20:58:19 | action: change xkb_pointer_button_action::button to uint8_t In XkbPtrBtnAction it is unsigned char, don't know how it became signed. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| fa87cdb8 | 2014-02-07 19:39:42 | darray: cleanup We have quite diverged from the upstream file, so let's make it at least easier to look at. Remove some unused macros and rename some for consistency. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 6f2df7df | 2014-02-07 19:28:48 | ast: make symsMapIndex unsigned It doesn't need to be signed. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| e9e39932 | 2014-02-07 18:49:22 | action: Use ResolveInteger for PtrBtn.count, not ResolveButton It's not a button. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| e0137cac | 2014-02-07 18:48:16 | action: check range of MovePtr X,Y values Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| b82a0a86 | 2014-02-07 18:09:30 | scanner: avoid strlen in keyword lookup, we know the len Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 2abff2a0 | 2014-02-07 17:29:34 | state: use the XKB_MOD_MASK constant Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| ed18f7dd | 2014-02-07 17:13:03 | x11: add #actions == #syms check This must always hold (but if there are no actions, #actions==0), and explicitly ensures there won't be a division-by-zero a bit below. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 125bb19e | 2014-02-07 17:11:49 | x11: add explicit cast in mods conversion Explicit is better and all. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 109fe705 | 2014-02-04 02:53:05 | Use secure_getenv when available We probably don't want to get a privileged process to compile arbitrary keymaps. So we should be careful about the envvars which control include paths or default RMLVOs. But then secure_getenv is more sensible for everything we do. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| eb348255 | 2013-07-20 23:21:44 | x11: add XKB protocol keymap and state creation support These are function to create an xkb_keymap directly from XKB requests to the X server. This opens up the possibility for X clients to use xcb + xcb-xkb + xkbcommon as a proper replacement for Xlib + xkbfile for keyboard support. The X11 support must be enabled with --enable-x11 for now. The functions are in xkbcommon/xkbcommon-x11.h. It depends on a recent libxcb with xkb enabled. The functions are in a new libxkbcommon-x11.so, with a new pkg-config file, etc. so that the packages may be split, and libxkbcommon.so itself remains dependency-free. Why not just use the RMLVO that the server puts in the _XKB_RULES_NAMES property? This does not account for custom keymaps, on-the-fly keymap modifications, remote clients, etc., so is not a proper solution in practice. Also, some servers don't even set it. Now, the client just needs to recreate the keymap in response to a change in the server's keymap (as Xlib clients do with XRefreshKeyboardMapping() and friends). Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| a9c56f64 | 2014-01-13 17:20:54 | context: split private functions to context-priv.c (Same as keymap-priv.c). Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 7210497c | 2014-01-13 17:07:41 | keymap: split private functions to keymap-priv.c This makes it easier to share the private functions in other DSOs without relying (too much) on dead code elimination, exported symbols, etc. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 4884a8e6 | 2013-08-02 10:19:01 | keymap: move XkbEscapeMapName() to keymap.c. So we can use it outside src/xkbcomp; it is not really specific to it. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 917c7515 | 2014-01-12 14:37:39 | context: remove mostly useless log wrappers Just use xkb_log directly. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 101720a2 | 2014-01-12 13:18:39 | parser: shutup some 'may be used uninitialized' warnings Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| bbc69b63 | 2014-01-12 10:53:23 | action, types: remove unused Report functions Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 31430670 | 2014-01-11 16:40:42 | Fix some cppcheck warnings Someone was nice enough to run this for us: ftp://ftp.sunet.se/pub/Linux/distributions/Debian/debian/pool/main/libx/libxkbcommon/libxkbcommon_0.3.1.orig.tar.gz [libxkbcommon-0.3.1/src/keymap.c:86]: (style) The scope of the variable 'j' can be reduced. [libxkbcommon-0.3.1/src/keymap.c:87]: (style) The scope of the variable 'key' can be reduced. [libxkbcommon-0.3.1/src/keysym-utf.c:843]: (style) The scope of the variable 'mid' can be reduced. [libxkbcommon-0.3.1/src/state.c:992]: (style) The scope of the variable 'str' can be reduced. [libxkbcommon-0.3.1/src/xkbcomp/action.c:467]: (style) The scope of the variable 'absolute' can be reduced. [libxkbcommon-0.3.1/src/xkbcomp/rules.c:468]: (style) The scope of the variable 'consumed' can be reduced. [libxkbcommon-0.3.1/src/xkbcomp/rules.c:862]: (style) The scope of the variable 'mlvo' can be reduced. [libxkbcommon-0.3.1/src/xkbcomp/rules.c:863]: (style) The scope of the variable 'kccgst' can be reduced. [libxkbcommon-0.3.1/src/xkbcomp/rules.c:865]: (style) The scope of the variable 'match_type' can be reduced. [libxkbcommon-0.3.1/src/xkbcomp/symbols.c:753]: (style) The scope of the variable 'toAct' can be reduced. [libxkbcommon-0.3.1/src/xkbcomp/symbols.c:1573]: (style) The scope of the variable 'key' can be reduced. [libxkbcommon-0.3.1/test/common.c:80]: (warning) %d in format string (no. 1) requires 'int' but the argument type is 'unsigned int'. [libxkbcommon-0.3.1/test/interactive.c:358]: (style) The scope of the variable 'nevs' can be reduced. [libxkbcommon-0.3.1/test/interactive.c:236]: (style) Checking if unsigned variable 'nsyms' is less than zero. [libxkbcommon-0.3.1/test/interactive.c:226]: (style) Unused variable: unicode Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 1d5ae226 | 2014-01-11 00:26:58 | makekeys: mark keysym_names as static Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 51c9f8e2 | 2014-01-02 01:19:25 | keysym: clarify slightly confusing comparison functions Make it clear what the search key type and array types are. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 0628b9b2 | 2014-01-01 13:01:12 | makekeys: Add a gcc pragma to ignore -Woverlength-strings | ||
| eef3ab23 | 2013-07-17 18:56:03 | makekeys: Put a comment describing the origin of the file | ||
| 68c61e7f | 2013-07-17 18:07:31 | ks_tables: Put all keysym names in one giant block This makes the file take two segments instead of potentially many, causing relocation issues. | ||
| 53e7a135 | 2014-01-01 10:40:09 | keysyms: add German T3 layout keysyms from xproto Reference: http://cgit.freedesktop.org/xorg/proto/xproto/commit/?id=6d4acb0e3a6568a8faaa651d4e3d32f917b9067b Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| e18e7608 | 2014-01-01 10:36:54 | keysym: fix search for lexicographically larger strings Probably a copy/paste error from a few lines above. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 1e6e5669 | 2013-12-14 17:39:11 | ast: pack the ParseCommon struct This shows a measurable improvement in memory and performance for free, on 64bit at least. Packing is (or should be) safe in this case. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 9a3c115b | 2013-12-02 17:13:50 | atom: don't malloc every node separately Instead of having a darray of pointers to malloc'ed atom_node's, make it a darray of atom_node's directly. This makes the code a bit simpler, saves on some malloc's, and the memory gain/loss even out. Unfortunately, we are no longer Three Star Programmers ;( http://c2.com/cgi/wiki?ThreeStarProgrammer Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 1374b50e | 2013-12-02 14:25:51 | atom: tiny style fixes Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 048ee703 | 2013-12-02 14:23:59 | atom: allow passing NULLs to find_node_pointer() Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| d873693b | 2013-12-02 14:15:58 | atom: allow interning empty string Which is different than XKB_ATOM_NONE, as in "" != NULL. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 58345f4e | 2013-12-02 14:14:41 | atom: drop {xkb_,}atom_strdup Even though in 112cccb18ad1bc877b3c4a87fa536ea085c761b5 I said it might be useful, it's not. So remove it. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| b63fa3b1 | 2013-12-01 13:32:51 | expr: make Expr creation naming and file location consistent Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 07334f4d | 2013-12-01 13:29:30 | expr: add wrapper macro for ExprCreate Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 972395b8 | 2013-12-01 12: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> | ||
| 068016e4 | 2013-12-01 10:45:52 | parser, symbols: drop unnecessary casts It's casted into ExprDef and then uncasted for no reason. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 4a7bfb68 | 2013-12-01 10:31:27 | expr: use ExprCreate in more places Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| fd98d64b | 2013-11-30 23:29:58 | parser: remove 'uval' yylval type We don't care about DoodadType. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| c24b6420 | 2013-11-30 23: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> | ||
| c5d85938 | 2013-11-30 23:12:45 | expr: add constructors for more expression types This makes the parser a bit more declarative. But really it might make error handling easier. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| dbd8b1ef | 2013-11-30 22: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> | ||
| 9dc5b8cb | 2013-11-27 13:49:13 | Resolve keysyms early in parser Instead of having the parser passing strings to the AST, and symbols/compat etc. resolving them themselves. This simplifies the code a bit, and makes it possible to print where exactly in the file the bad keysym originates from. The previous lazy approach had an advantage of not needlessly resolving keysyms from unrelated maps. However, I think reporting these errors in *any* map is better, and the parser is also a bit smarter then old xkbcomp and doesn't parse many useless maps. So there's no discernible speed/memory difference with this change. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| ba7530fa | 2013-11-27 13:43:57 | scanner: restore lost DIVIDE token I don't know how this could have happened. Luckily this token is completely useless. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 1651e5af | 2013-11-27 13:12:19 | symbols: modernize LookupKeysym Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 64b8da4b | 2013-11-27 12:52:20 | symbols: rename info.modMaps -> modmaps Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 044d4b5f | 2013-11-08 17:08:35 | Make XkbFileCreate argument types match between header & implementation Fixes build failure with Solaris Studio compilers: "src/xkbcomp/ast-build.c", line 492: identifier redeclared: XkbFileCreate current : function(..., enum xkb_map_flags) previous: function(..., unsigned int) : "src/xkbcomp/ast-build.h", line 98 Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> | ||
| 73956752 | 2013-10-27 20:12:05 | scanner-utils: remove outdated comment Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 65f9980b | 2013-10-14 19:05:24 | rules: fix scanning of line-continuation without leading space We were failing to scan something like\ this correctly. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| dcdd4e10 | 2013-10-14 18:59:53 | Replace ctype.h functions with ascii ones ctype.h is locale-dependent, so using it in our scanners is not optimal. Let's be deterministic with our own simple functions. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| a45f531a | 2013-10-09 12:12:59 | keymap: call strlen on keymap string instead of SIZE_MAX I wanted to avoid the strlen, but we'd better keep the scanner a bit less surprising and encourage people to use xkb_keymap_new_from_buffer() instead of they do in fact have access to the size. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| ca0d388f | 2013-10-08 23:09:01 | rules: simplify a bit of code Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| fbed22e8 | 2013-10-08 22:58:28 | rules: use strlen_safe Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| efe5b036 | 2013-10-08 22:37:53 | rules: improve error logging macros Improve safety with parenthesis, make the matcher macros use the scanner ones, and make the 1 variant use %s instead of embedding the msg; this way the compiler can reuse the string in the binary. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 5af688e6 | 2013-10-08 21:46:01 | rules: reduce variable scopes There are some big functions there, and this might help reduce the cognitive load a bit. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| c35c388b | 2013-10-08 18:35:05 | scanner: remove unnecessary cast 'tok' is already an int now. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 27f2743c | 2013-10-07 14:11:36 | keysym-utf: Fix a warning about shadowing Change variable names to avoid the name clash. The warning seen is src/keysym-utf.c: In function 'bin_search': src/keysym-utf.c:841: warning: declaration of 'min' shadows a global declaration src/utils.h:109: warning: shadowed declaration is here src/keysym-utf.c:842: warning: declaration of 'max' shadows a global declaration src/utils.h:115: warning: shadowed declaration is here Signed-off-by: Siddharth Heroor <heroor@ti.com> | ||
| 1e52bf79 | 2013-10-03 10:02:49 | symbols: fix use of uninitialized variable 'tmp' is stack allocated so tmp->merge is used uninitialized by AddModMapEntry(). The value doesn't matter much, but it used to make some modmap merging decision (which doesn't have many conflicts usually). Bug inherited from xkbcomp. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 8e14bff0 | 2013-09-29 01:41:52 | parser: add some notes about byacc working We now also work with byacc (version tested: 20130925) which some people prefer, perhaps due to its license (public domain) or performance (haven't compared). When using byacc, currently the following warning comes up: src/xkbcomp/parser.c:954:14: warning: declaration shadows a variable in the global scope [-Wshadow] YYSTYPE yylval; ^ src/xkbcomp/parser.c:37:20: note: expanded from macro 'yylval' #define yylval _xkbcommon_lval ^ ./src/xkbcomp/parser.h:96:16: note: previous declaration is here extern YYSTYPE _xkbcommon_lval; This is due to a bug in byacc - it shouldn't output that extern line in %pure-parser mode. So the warning stays. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 8dcb30e5 | 2013-09-29 01:29:47 | parser: add a workaround for byacc Unlike bison, byacc outputs its own parser code *after* our own parser.y code, which includes the #undef. So this fix is needed for the 'scanner' -> 'param->scanner' translation to work in the parser.c code generated by byacc. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 409f27d7 | 2013-09-29 00:41:17 | parser: don't use %locations byacc doesn't support this feature. We print the line/col of the last scanned token instead. This is slightly less in case of *parser* errors (not syntax errors), but I couldn't make it point to another line, and this are pretty cryptic anyways. So it's good enough. Also might be a bit faster, but haven't checked. Signed-off-by: Ran Benita <ran234@gmail.com> | ||
| 13da6da0 | 2013-09-29 00:24:50 | parser: drop %name-prefix, use -p yacc argument instead Even though the %name-prefix is more sensible, byacc doesn't support it, but both bison and byacc support the -p argument. Signed-off-by: Ran Benita <ran234@gmail.com> |