Commit Graph

285 Commits (a64e970809ffef749a155616e62d21802a374bd3)

Author SHA1 Message Date
Daniel Stone 3151ce36fa Remove priv arguments from ExprResolveModMask
What with them now being unused and all.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-02-20 13:34:36 +00:00
Daniel Stone 67605d2c90 Introduce ExprResolveVModMask
Which is just a slightly more typesafe wrapper around the chained
ExprResolveModMask everyone was using earlier.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-02-20 13:32:09 +00:00
Daniel Stone fbb82199ee Respect explicit minimum/maximum keycodes
Make sure we carry over an explicit minimum/maximum keycode setting,
rather than just using the computed minimum/maximum; this got broken
while changing the keycode range to be unsigned.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Reported-by: Pekka Paalanen <ppaalanen@gmail.com>
2012-02-16 11:18:49 +00:00
Daniel Stone c45cdb0c67 Still more memory leak fixes
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-02-16 00:22:11 +00:00
Daniel Stone 83f18b1c3a Fix xkbparse.y compilation
Thanks to autotools happily building stale generated sources, I hadn't
actually ever built my xkbparse.y changes.  Fix that so it not only
compiles, but works.  This seems to parse long keycodes correctly,
although I very much would not recommend testing this by declaring
0x1fffffff as your highest keycode.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-02-15 19:39:33 +00:00
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 3077e97e7c tests: Free returned XKB map
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-02-15 16:38:17 +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 f57dcfebf4 Raise keycode range to 32 bits
\o/

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
Kristian Høgsberg 05f5be9f6d Also update required kbproto version in .pc.in file 2011-04-04 09:21:55 -04:00
Kristian Høgsberg 9dd7dc6d88 configure: Lower kbproto requirement to 1.0.4
There's nothing in 1.0.5 that we need.
2011-03-18 00:33:48 -04:00
Kristian Høgsberg dd0e8b70fb Revert "config: remove incorrectly implemented visibility compiler option"
This reverts commit bf9fdceef6.

We really only want to expose symbols that we explicitly mark as part of
the API.  This may not work with other platforms or compilers, but the
fact that private symbols are not available on Linux+GCC is enough of an
incentive to not use those.

Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
2011-01-29 14:11:36 -05: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 b9b0011994 config: update COPYING for software licensing
The Copyright statements must appear in full.
When only the year was different, I added it in an existing
Copyright statement.

Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2010-12-18 11:19:57 -05:00
Gaetan Nadon 1b6e022c97 config: set the default xkb config root based on xkeyboard-config module
The default value ${dataroot}/X11/xkb only works if xkeyboard-config
has created the keymaps in that directory. Let's obtain the true final
value of where the keymaps are and use that as a default. In a production
environment this is the only value that can work.

This new default value also has the merit of making the 'check' target
to work in distcheck which does not have a copy of the xkeyboard-config
keymaps in its sandbox based on ${dataroot}/X11/xkb. The test data
cannot find the "include" keymaps it needs.
.../libxkbcommon-0.1.0/_inst/share/X11/xkb

Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2010-12-18 11:19:57 -05:00
Gaetan Nadon 5e43e7b46c config: distribute the .sh test programs and test data
The test programs and the test data are required in the tarball
and needed for distcheck.

Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2010-12-18 11:19:57 -05:00
Gaetan Nadon f424bd8f5f config: make it easier to add TEST programs
LDADD is a Makefile wide variable.
Automake matches prog name with .c file by default

Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2010-12-18 11:19:57 -05:00
Gaetan Nadon ff8e8f696a config: include: use nobase_include_HEADERS
Slightly simpler.

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 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 bf9fdceef6 config: remove incorrectly implemented visibility compiler option
CFLAGS is a user variable which should never be set by the configuration.
It allows the user to alter the configuration compiler options.

The visibility is only set for GNU compiler, leaving libraries built
with other compilers with the wrong visibility.

All other xorg libraries set visibilty using _X_EXPORT or _X_HIDDEN.

For the time being, all the symbols will have the default visibility
which does not break anything.

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 ec3fbfdf6d config: use xproto pkgconfig includex11dir variable
Rather than appending X11 to the include dir.
It should be safe to use as it has been added in 2005.

Use a local variable name matching the pkgconfig name.

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 3c570b7ce9 config: relocate library functions check and comment
No functional changes.
Follow Automake suggested order.

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 41664ba237 config: remove PKG_PROG_PKG_CONFIG test
If pkg-config is missing, the configuration fails while initializing
XORG_* macros:

warning: PKG_PROG_PKG_CONFIG is m4_require'd but not m4_defun'd
line 11622: PKG_PROG_PKG_CONFIG: command not found

The output is sufficient to locate the problem.
It is not possible, or very difficult, to not have pkg-config
installed as the whole desktop and countless other software
depends on it.

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 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 e2f9f51667 config: allow to build tarball when yacc is missing
Autoconf does not handle this scenario as well as Automake does.
If xkbparse.c is already there, do not abort the configuration
if yacc is missing as it is not needed.

If both xkbparse.c and yacc are missing, abort configuration.
Yacc is a required tool to build the package.

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 2c51e4b195 config: add the default README file.
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 7ce1a6dca2 config: add the INSTALL target for installation instructions
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
Gaetan Nadon f75ff7d921 config: remove m4/.gitignore now that toplevel one handles it all
The -Im4 in Makefile.am will have to wait until the day
there is an m4 macro checked-in git in the m4 directory.
This does not prevent libtool to install its macros in m4.

Acked-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2010-12-07 09:47:32 -05:00
Gaetan Nadon 0bfae4149c config: .gitignore: template with default values for components #24239
This toplevel .gitignore covers all possible generated files
from autotools, compiler, linker, etc...

It has been in use for over a year in all xorg modules and has
prevented a good number of patches.

For example, in this module, src/stamp-h1 was not ignored even
if the .gitignore had just been updated. Files with a .patch
extension were not ignored which sometimes cause a patch to be
checked-in git accidentally.

Acked-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2010-12-07 09:47:32 -05:00
Gaetan Nadon 83f64da993 config: remove AC_PROG_CC as it overrides AC_PROG_C_C99
XORG_STRICT_OPTION from XORG_DEFAULT_OPTIONS calls
AC_PROG_C_C99. This sets gcc with -std=gnu99.
If AC_PROG_CC macro is called afterwards, it resets CC to gcc.

Acked-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2010-12-07 09:47:32 -05:00
Gaetan Nadon a0512b28de config: initialize autoconf, automake and libtool
Add missing AM_MAINTAINER_MODE, matching --enable-maintainer-mode
option in autogen.sh.

Acked-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2010-12-07 09:47:31 -05:00
Gaetan Nadon 971d9a9955 config: use XORG_DEFAULT_OPTION from util-macros version 1.8
This will handle AM_SILENT_RULES such that it will not break
on earlier Autoconf versions.
It provides a host of other configuration items

Acked-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2010-12-07 09:47:31 -05:00
Gaetan Nadon 8562d97808 config: set Autoconf minimum version required to 2.60
This is the current minimum version required for all X.Org modules.
The module can be configured with any higher version.
Autoconf features from version > 2.60 cannot be used.

Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2010-12-07 09:47:31 -05:00
Jan Engelhardt f0456a832f Update .gitignore
Limit exclusion of files to their respective directory
that they can appear in.

Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
2010-11-11 23:28:29 +01: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
Jan Engelhardt d84da95f69 build: run autoupdate
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
2010-11-11 23:21:36 +01:00
Jan Engelhardt b86fc75272 build: use proper quoting in autogen.sh
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
2010-11-11 23:21:36 +01:00