src/xkbcomp


Log

Author Commit Date CI Message
Ran Benita 18e6a6a4 2012-04-05T10:47:43 Remove Xfuncproto.h and XKB.h from xkbcommon/xkbcommon.h The kbproto header is already not needed here anymore. Move the _X_EXPORT's to the corresponding function definitions, and use straight extern "C" clauses instead of _XFUNCPROTOBEGIN/END. It also makes more sense to have the EXPORT's in the source files, as it provides some documentation to the reader, whereas in the header it's obvious. Signed-off-by: Ran Benita <ran234@gmail.com> [daniels: Updated for xkb_keymap changes.]
Ran Benita 073a2107 2012-04-08T15:40:12 Constify the syms_out argument to xkb_key_get_syms() The caller should not mess around with these as they come directly from our internal structs. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 467d7bb6 2012-04-05T10:13:24 Implement missing xkb_state_ref and add return value xkb_state_ref was missing. Also modify the _ref functions to return the object instead of being void. This is a useful idiom: struct my_object my_object_new(struct xkb_state *state) { [...] my_object->state = xkb_state_ref(state); [...] } Essentially "taking" a reference, such that you don't forget to increment it and it's one line less (see example in our own code). A case could also be made for _unref to return the object or NULL, but this is quite uncommon. Signed-off-by: Ran Benita <ran234@gmail.com> [daniels: Updated for xkb_keymap changes.]
Ran Benita b08629f9 2012-04-06T05:09:17 Do not enable yacc trace facility unconditionally Define DEBUG and set yydebug if you want that. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 913e0740 2012-03-31T01:18:55 Constify a global table and function arguments Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita d116aaef 2012-04-06T05:02:35 Remove unused struct definition Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 28011e71 2012-04-06T04:20:35 Replace remaining use of Atom instead of xkb_atom_t Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita e9537d50 2012-04-08T20:58:39 Fix possible overflow in scanner Also reduce the size of scanBuf given that it's allocated on the stack, and 1024 is enough. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 8feba630 2012-04-08T18:46:58 Fix KeyInfo's syms array size calculation When merging group info from two KeyInfo's, the new size of the keysym array was off. Fix it to match how it is used a few lines below. There are also some peripheral fixes, and some comments (took me a few minutes to get what's going on). Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 2590b5a1 2012-04-08T15:37:36 Fix compiler warnings (They were not reported, see next commit). The reset function declaration didn't match its name in the definition; the _defaults variant matches better with the rest. Signed-off-by: Ran Benita <ran234@gmail.com> [daniels: Updated to current master.]
Daniel Stone 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>
Daniel Stone 632d9f03 2012-04-03T14:26:04 Eliminate remaining gcc warnings Various one-liners (mostly removing unused variables) to make the code safe for the full set of warnings used by the xorg macros. On Debian-based systems, flex generates incorrect code resulting in two warnings about yy_getcolumn and yy_setcolumn having no previous declaration despite being non-static. Fedora carries a patch to fix this, and a bug has been filed on Debian's flex to add the patch: http://bugs.debian.org/667027 Aside from this, it's now safe for --enable-strict-compilation. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone f249919e 2012-04-03T13:44:21 include resets group compatibility modifiers #43091 This change makes sure that include does not overwrite previous compatibility modifier settings when the included files does not explicitly specify them. Signed-off-by: Andreas Wettstein <wettstein509@solnet.ch> Reviewed-by: Daniel Stone <daniel@fooishbar.org> [Cross-picked from xkbcomp commit 14470719.]
Ran Benita c83043b3 2012-03-31T01: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>
Ran Benita 7a7ec9b1 2012-03-31T02:30:33 Avoid leak in CompileKeymap error path The NULL check is unneeded, and prevented the atoms from being free'd. Signed-off-by: Ran Benita <ran234@gmail.com> [daniels: Updated for xkb_map_unref.]
Ran Benita 84ec6b61 2012-04-01T16:51:48 Add a NULL check before before strcmp'ing The names array can have NULL entries for some virtual modifier indexes. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita fb606b06 2012-04-01T17:07:56 Avoid use of partly initialized VModInfo in error path Such as: Compiling path: ./test/data/bad.xkb mapName: ==1300== Conditional jump or move depends on uninitialised value(s) ==1300== at 0x4E46166: HandleVModDef (vmod.c:90) ==1300== by 0x4E3FEC9: HandleKeyTypesFile (keytypes.c:1035) ==1300== by 0x4E3FBE1: HandleIncludeKeyTypes.constprop.11 (keytypes.c:387) ==1300== by 0x4E401DD: HandleKeyTypesFile (keytypes.c:1022) ==1300== by 0x4E3FBE1: HandleIncludeKeyTypes.constprop.11 (keytypes.c:387) ==1300== by 0x4E401DD: HandleKeyTypesFile (keytypes.c:1022) ==1300== by 0x4E4026F: CompileKeyTypes (keytypes.c:1150) ==1300== by 0x4E3DF9B: CompileKeymap (keymap.c:169) ==1300== by 0x4E465E9: compile_keymap (xkbcomp.c:205) ==1300== by 0x4E46BE4: xkb_compile_keymap_from_file (xkbcomp.c:290) ==1300== by 0x400B37: test_file (filecomp.c:47) ==1300== by 0x4008E3: main (filecomp.c:90) ==1300== Uninitialised value was created by a stack allocation ==1300== at 0x4E3FB3F: HandleIncludeKeyTypes.constprop.11 (keytypes.c:366) Signed-off-by: Ran Benita <ran234@gmail.com>
Daniel Stone cc5588c6 2012-03-29T17:39:11 Fail gracefully on failure to find component include If we can't find the component of the include file we're looking for, make sure we don't return success when we meant failure, segfault, or spectacularly leak everything. Tested with incorrect component includes for keycodes, compat, symbols, and types. Signed-off-by: Daniel Stone <daniel@fooishbar.org> Reported-by: David Herrmann <dh.herrmann@googlemail.com>
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 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 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 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 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]
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>
Daniel Stone d039622a 2012-03-22T17:39:12 Rename keymap allocation API 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 9468d84a 2012-03-21T14:44:16 Fix (correct, but harmless) const warning 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 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 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 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 266dfae5 2012-02-29T21:26:28 Remove useless casts 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 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>