Commit Graph

171 Commits (eb8c96cbd99f5facbeb73c9b10fc4d592e4c547b)

Author SHA1 Message Date
Daniel Stone eb8c96cbd9 Don't leak SymbolsInfo
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-02-15 16:42:45 +00:00
Daniel Stone 67c874d76d Enable stderr debugging by default
(If debugFlags is set to non-zero.)

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-02-15 16:24:51 +00:00
Daniel Stone 1a6c3807d6 vmod: Pass xkb_desc explicitly to vmod functions
Some error paths don't set info->xkb correctly, so just do like most
utility functions and pass the xkb_desc explicitly.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-02-15 16:24:50 +00:00
Daniel Stone 4e22851141 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>
2012-02-15 16:24:50 +00:00
Daniel Stone 8f01b14412 xkbscan: Copy, rather than assign, file name
For some reason, lex decided to reduce a strcpy into an assignment,
leading to entirely justified valgrind warnings about invalid reads,
when scanFile was set to a string which may have only ever lived on the
stack of a now-exited function.

Make it a strdup() instead.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-02-15 16:24:50 +00:00
Daniel Stone ead9d0cb62 Move include path from X11/extensions/ to xkbcommon/
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-02-15 16:24:50 +00:00
Rob Bradford 615291f1f4 xkbcomp: Silence warning of return of uninitialised value
Some routes through HandleGeometryVar do not set a return value. Set a default
value for the return variable to avoid returning an uninitialised value.
2012-01-05 14:24:11 +00:00
Pekka Paalanen c19661b965 Add xkbc_free_keymap helper
Which just calls XkbcFreeKeyboard with the only arguments you'd ever
pass it.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2011-12-16 12:52:00 +00:00
Rob Bradford 99e29de22d xkbcomp: Copy the string into the buffer rather than updating pointer
Avoids assigning the global pointer to a value that may only have a stack
lifetime:

Fixes valgrind warnings such as:

==24795== Invalid read of size 1
==24795==    at 0x4A06E9A: strcpy (mc_replace_strmem.c:311)
==24795==    by 0x4E54D68: ProcessIncludeFile (misc.c:73)
==24795==    by 0x4E59726: HandleIncludeSymbols.constprop.3 (symbols.c:829)
==24795==    by 0x4E59D8E: HandleSymbolsFile (symbols.c:1673)
==24795==    by 0x4E5A068: CompileSymbols (symbols.c:2211)
==24795==    by 0x4E51A61: CompileKeymap (keymap.c:155)
==24795==    by 0x4E5B410: xkb_compile_keymap_from_components (xkbcomp.c:236)
==24795==    by 0x4E5B587: xkb_compile_keymap_from_rules (xkbcomp.c:161)
==24795==    by 0x405ED2: display_create (window.c:2007)
==24795==    by 0x403732: main (desktop-shell.c:320)
==24795==  Address 0x7fefff0a0 is just below the stack ptr.  To suppress, use:
--workaround-gcc296-bugs=yes
==24795==
==24795== Source and destination overlap in strcpy(0x7fefff430, 0x7fefff430)
==24795==    at 0x4A06F3D: strcpy (mc_replace_strmem.c:311)
==24795==    by 0x4E54D68: ProcessIncludeFile (misc.c:73)
==24795==    by 0x4E59726: HandleIncludeSymbols.constprop.3 (symbols.c:829)
==24795==    by 0x4E59D8E: HandleSymbolsFile (symbols.c:1673)
==24795==    by 0x4E5A068: CompileSymbols (symbols.c:2211)
==24795==    by 0x4E51A61: CompileKeymap (keymap.c:155)
==24795==    by 0x4E5B410: xkb_compile_keymap_from_components (xkbcomp.c:236)
==24795==    by 0x4E5B587: xkb_compile_keymap_from_rules (xkbcomp.c:161)
==24795==    by 0x405ED2: display_create (window.c:2007)
==24795==    by 0x403732: main (desktop-shell.c:320)
2011-10-27 14:30:21 +01:00
Cyril Brulebois f91afe4f3e Add prototype for CheckDefaultMap().
Those warnings disappear accordingly:
|   CC     parseutils.lo
| parseutils.c:742: warning: no previous prototype for ‘CheckDefaultMap’
|   CC     xkbscan.lo
| xkbscan.l: In function ‘XKBParseString’:
| xkbscan.l:220: warning: implicit declaration of function ‘CheckDefaultMap’
| xkbscan.l:220: warning: nested extern declaration of ‘CheckDefaultMap’

Reviewed-by: Dirk Wallenstein <halsmit@t-online.de>
Signed-off-by: Cyril Brulebois <kibi@debian.org>
2011-06-03 17:19:09 +02:00
Cyril Brulebois 621c2a7a8c Get rid of unneeded <X11/Xlib.h> include.
There's no need for this xlib include:
|   YACC   xkbparse.c
|   CC     xkbparse.lo
| xkbparse.y:98:22: error: X11/Xlib.h: No such file or directory

Signed-off-by: Cyril Brulebois <kibi@debian.org>
Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
2011-01-29 14:10:35 -05:00
Kristian Høgsberg a63e82be2a Rename XkbcInternAtom() to xkb_intern_atom() and export
Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
2011-01-29 14:10:22 -05:00
Gaetan Nadon 2422c41b8e config: add keysymdef and xf86keysym as dependencies of ks_tables.h
This would cover the scenario where these headers file are updated,
for example, a new version is installed. Running 'make' again
on libxkbcommon should rebuild ks_tables.h.

Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2010-12-18 11:19:56 -05:00
Gaetan Nadon 69e52ad901 config: makekeys prog should stand alone in the makekeys directory
This program is a utility to generated a header file.
The header file it generates should not be located in the
directory where this utility program is compiled.

Move the /makekeys dir as a sibling of /src.
This reduces the number of bi-directional relationships
between directories.

Make corresponding makefiles simplifications.

Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2010-12-18 11:19:56 -05:00
Gaetan Nadon 89377d5cd1 config: use existing variables KEYSYMDEF_H and XF86KEYSYM_H
These automake variables are not currently used.
The variable KS_HEADERS is not required anymore.

Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2010-12-18 11:19:56 -05:00
Gaetan Nadon f507660421 config: let Automake handle Lex and Yacc dist and cleaning
BUILT_SOURCES and MAINTAINERCLEAN are not needed for lex and yacc
Note that xkbscan was missing on those lines.

Automake generates all the rules to handle building, distribution
and cleaning.

Acked-by: Daniel Stone <daniel@fooishbar.org>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2010-12-08 15:24:21 -05:00
Gaetan Nadon 63e2719a8f config: replace deprecated INCLUDES with AM_CPPFLAGS
Fixes automake warning.

Acked-by: Daniel Stone <daniel@fooishbar.org>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2010-12-08 15:24:21 -05:00
Gaetan Nadon ceba14dc3e config: update subdirs .gitignore
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2010-12-07 10:23:18 -05:00
Jan Engelhardt f8301ebc56 xkbscan: resolve build warning/rpmlint error
xkbscan.l: In function 'setScanState':
xkbscan.l:201:1: warning: control reaches end of non-void function
I: Program returns random data in a function
E: libxkbcommon no-return-in-nonvoid-function xkbscan.l:201

Change return type of setScanState to void, since a return value is
never used by its callers.

Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
2010-11-11 23:27:21 +01:00
Jon TURNEY f94a64cc08 Link with -no-undefined
Use -no-undefined to assure libtool that the libxkbcommon library has
no unresolved symbols at link time, so that libtool will build a shared
library on platforms require that all symbols are resolved when the
library is linked.

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2010-10-26 14:11:38 -04:00
Kristian Høgsberg 8d2c522f31 Don't check for xlib, we don't need it 2010-10-21 21:34:41 -04:00
Kristian Høgsberg c88439dbf0 Update xkb->ctrls->num_groups when copying the keysyms
This used to be set when we read an XKM file.
2010-10-20 22:27:07 -04:00
Kristian Høgsberg 125691573c 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...
2010-10-20 15:57:45 -04:00
Kristian Høgsberg a84c08795e Use flex for generating the scanner, add support for parsing from strings
Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
2010-10-20 14:03:53 -04:00
Kristian Høgsberg e879828717 Don't return a static buffer in public API 2010-10-08 15:33:18 -04:00
Adam Jackson 73ca959d7b Dead code removal and static markup
Signed-off-by: Adam Jackson <ajax@redhat.com>
2010-09-27 16:06:48 -04:00
Kristian Høgsberg fb05ee47bf Remove libxkbfile dependency for real this time 2010-09-03 20:35:28 -04:00
Kristian Høgsberg 20bfe1280d Use const char * in struct xkb_rule_names 2010-08-29 21:30:10 -04:00
Kristian Høgsberg be2bd66181 Pull in a few #defines from libxkbfile and lower kbproto requirement 2010-08-25 14:51:52 -04:00
Kristian Høgsberg b3805a2360 Get rid of a few unused #defines in public header 2010-07-02 14:21:59 -04:00
Kristian Høgsberg 97fbc348b0 Rename XkbRMLVOSet to struct xkb_rule_names 2010-07-02 14:21:52 -04:00
Kristian Høgsberg 15f259993e Move private structs and defines to private headers 2010-07-02 12:20:59 -04:00
Kristian Høgsberg 3f0034a990 Rename public entry points to lowercase and underscore 2010-07-02 12:20:59 -04:00
Kristian Høgsberg 9f6026867a 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.
2010-07-02 12:20:54 -04:00
Kristian Høgsberg 8e653493d0 Fix warning from CARD32 -> uint32_t conversion 2010-06-30 17:31:34 -04:00
Kristian Høgsberg e10e16ad2f Constify XkbcAtomText()
Atoms aren't mutable and this lets us put tbGetBuffer() back in the box.
2010-06-30 17:30:42 -04:00
Kristian Høgsberg d95b289367 Make XkbcInitAtoms() call optional 2010-06-30 17:13:21 -04:00
Kristian Høgsberg 0ece2cdbaf Drop more malloc/free wrappers 2010-06-30 16:56:24 -04:00
Kristian Høgsberg a76df86572 Use the right action structs
We were casting the union members to the wrong action structs (from kbproto).
2010-06-30 16:33:25 -04:00
Kristian Høgsberg 1723ef1bc7 Copy over missing action structs from kbproto 2010-06-30 15:48:39 -04:00
Kristian Høgsberg 9258cc3dca Rename Xkbc*Action to struct xkb_*_action 2010-06-30 13:31:21 -04:00
Kristian Høgsberg 399d4bd678 Drop malloc wrappers 2010-06-28 06:58:01 -04:00
Kristian Høgsberg 47d3b3969b Drop CARD32 and Opaque types 2010-06-28 06:50:12 -04:00
Daniel Stone 2fb329c964 Copy and duplicate XkbModsRec and XkbKTMapEntryRec
Copy these types in so we can extend the vmod size.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2010-06-23 16:25:10 +01:00
Daniel Stone 8693c2652c Add really rudimentary rules caching support
Keep the parsed form of the last-used rules file around, and reuse that
if we get asked for the same ruleset.  If not, bin it and cache the
other one.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2010-06-22 15:57:16 +01:00
Daniel Stone 7257d4c89e Use CARD32 instead of Atom, move geom headers in
Use CARD32 instead of Atom/KeySym/et al to avoid type size confusion
between server and non-server code; relatedly, move the geometry headers
in from kbproto, so every non-simple type (i.e. structs containing
nothing more than basic types) is now copied into xkbcommon.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2010-06-22 15:57:16 +01:00
Daniel Stone b38525421f Interp: More lazy keysym resolution
Resolve the keysyms when we create an InterpDef, rather than directly
in the parser.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2010-06-22 15:57:16 +01:00
Daniel Stone 2c4a045aca Allow external atom databases
Allow people to plug in an external atom database (e.g. the X server's),
so we don't have to migrate our own atoms over later.  We are a bit
over-keen on atoms at the moment, so it does pollute the atom database a
bit though.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2010-06-22 15:57:16 +01:00
Daniel Stone 15b0db5492 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>
2010-06-22 15:57:16 +01:00
Daniel Stone 60e7eeeba1 Use CARD32 instead of Atom, drag in XkbClientMapRec
On 64-bit architectures, XID varies in size between the server (always
32 bits), and non-server (always unsigned long) for some inexplicable
reason.  Use CARD32 instead to avoid this horrible trap.

This involves dragging in XkbClientMapRec so we don't get stuck in the
KeySym trap.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2010-06-22 15:57:12 +01:00