Commit graph

316 commits

Author SHA1 Message Date
Gaetan Nadon
a0fc429f06 doxygen: libevdev.doxygen must not be distributed
It reflects the values on the build machine.
Same pattern as libevdev.pc vs libevdev.pc.in.

For example, in libevdev.doxygen:
HTML_EXTRA_STYLESHEET  = ./libevdev.css

Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-11-25 10:23:45 +10:00
Peter Hutterer
a742d253b7 test: add a build test for -Wpedantic
A user of libevdev may be compiled with -Wpedantic. Our header files should
not produce any warnings, so add a simple test that merely includes both
public header files and compiles with -Wpedantic -Werror.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
2013-11-23 09:00:53 +10:00
Peter Hutterer
5812ae0b7a Drop semicolons after getter/setter macros
libevdev.c:921:134: warning: ISO C does not allow extra ';' outside of a
function [-Wpedantic]

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
2013-11-22 12:28:22 +10:00
Peter Hutterer
8c7c55059d Drop trailing comma from last element in the enums
If a caller is compiled with -pedantic, this causes a few complaints

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
2013-11-22 12:28:22 +10:00
Peter Hutterer
7a38f4abc3 Drop deprecated functions
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
2013-11-22 10:38:36 +10:00
Peter Hutterer
bd5d247b4e libevdev 0.5
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-11-22 09:43:31 +10:00
Gaetan Nadon
a6400cd8da python: request version 2.6 or higher
This seems like a reasonable minimum version to require.
Available in RHEL6 (2010) or Ubuntu (2010).

Version 2.7 contains the argparse module so the check could be removed.
The argparse module was introduced in v2.3.5 as an optional module.

http://www.python.org/doc/versions/

Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-11-20 07:50:22 +10:00
Gaetan Nadon
f15afcb795 configure.ac: remove redundant AC_SUBST(PYTHON)
This is already done by AM_PATH_PYTHON.

Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-11-20 07:50:22 +10:00
Gaetan Nadon
fdb42481ef configure.ac: AC_PROG_CC_C99: use C99 compiler
Given the close ties with input drivers and xserver, might
as well use the same level of compiler.

Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-11-20 07:50:22 +10:00
Gaetan Nadon
5c1f55d9ce configure.ac: add copyright statement
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-11-20 07:50:22 +10:00
Gaetan Nadon
2b0db220d4 configure.ac: AC_INIT: add bug report url
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-11-20 07:50:22 +10:00
Gaetan Nadon
16560f2c01 autogen.sh: remove unneeded m4 configuration workaround
Creating the m4 directory is not required under any circumstances
when the package is properly configured. We have git files under m4.

Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-11-19 09:37:06 +10:00
Gaetan Nadon
4184c153ec autogen.sh: fix broken out-of-source tree building
The configure script is invoked from the build directory rather than
from the source directory.

Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-11-19 09:36:09 +10:00
Gaetan Nadon
4f0f1ca68c Review/update .gitignore files
Merge potentially useful patterns taken from other projects.

Some application specific patterns were move to their respective directories.

The only noticeable change is that *.patch is ignore to prevent accidental
checkin of patches. The pattern "test-driver" could not be found and was
removed.

The test directory had not been updated since the move of all test cases
in a single binary.

Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-11-19 09:34:23 +10:00
Peter Hutterer
2420d2577b Drop gcov flags from main libevdev sources
We recompile the sources anyway in the tests and we have our own CFLAGS there.
Drop them from the main library code so we don't leave gcov files everywhere.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
2013-11-18 18:16:20 +10:00
David Herrmann
b8ffc23875 build: check for build/link flags harder
Use AC_LINK_IFELSE instead of AC_COMPILE_IFELSE to test for flags that
might succeed during compilation but not during linking. An example is gcc
compiled with libssp support but gnu-ld without it. In this case
-fstack-protector works fine during compilation but fails during linking
as several internal helpers are missing.

Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-11-18 11:56:22 +10:00
Gaetan Nadon
f7acb3b19b Update COPYING file.
The file must reflect actual Copyright statements in the source code.

Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-11-15 09:30:10 +10:00
David Herrmann
0f4726c3e3 build: set AC_CONFIG_SRCDIR
This macro is used to verify that $srcdir is set correctly by testing for
existance of the passed file. Shouldn't hurt setting it to catch wrong
build setups.

Cc: Gaetan Nadon <memsize@videotron.ca>
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
Reviewed-by: Gaetan Nadon <memsize@videotron.ca>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-11-06 07:01:44 +10:00
Peter Hutterer
2aa3d3f1b0 Provide separate lookup functions for zero-terminated strings
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
2013-11-01 08:18:41 +10:00
David Herrmann
523f34b2d9 Add name-resolver unit tests
A bunch of tests for the new name resolver.

Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-10-31 11:24:26 +10:00
David Herrmann
12717d796c Add libevdev_event_type/code_from_name() resolvers
Three new helpers are added:
(1) libevdev_event_type_from_name() takes a string describing an EV_*
event type and returns the given event-type constant.
(2) libevdev_event_code_from_name() takes a string describing an event
code and returns the given event-code constant.

Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-10-31 11:24:23 +10:00
David Herrmann
d64ee00eeb Create event type/code lookup tables
Additionally to type->string mapping tables we now also create
string->type lookup tables. The lookup tables are sorted by their name
so binary-search will work.

We create one lookup table for EV_* types and one for all event-codes.
More tables (like bus-names, input-properties, ..) can be added later.

Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-10-31 11:23:13 +10:00
David Herrmann
5183bf3763 Add startswith() helper
Simple helper that use strncmp() to test whether a given string
starts with a given suffix. While it doesn't reduce code-size by much,
it is a lot more readable than the strncmp() usage.

Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-10-31 11:23:13 +10:00
David Herrmann
639a5a9b56 Fix wrong libevdev clock test
We can rely on CLOCK_MONOTONIC and CLOCK_REALTIME to be different at any
time. However, this does not apply to the ms/us/ns parts of the current
time. Both may be in sync regarding the current micro-seconds state. So
remove the wrong clock us-comparison.

I was able to trigger this on my machine. Chances that both are in sync
are very low so I assume my RTC only provides low granularity and thus
both clocks are sync during boot for higher granularity.

Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-10-31 11:23:13 +10:00
Peter Hutterer
34d52e143d Require autoconf 2.62
According to Gaetan, that's what we really require. And as a bonus point, this makes libevdev build
on RHEL6 out-of-the-box.

CC: Gaetan Nadon <memsize@videotron.ca>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-10-31 11:23:13 +10:00
Peter Hutterer
c4111f717a Check max to see if an event type is valid
There's a gap in the range between EV_SW and EV_LED. Trying to enable one
of those bits will segfault.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
2013-10-24 15:13:41 +10:00
Peter Hutterer
521ba2300e Make sure EV_SYN is always set
Set the bit during device reset and make sure that if we're checking
for the event type we always return true for EV_SYN.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
2013-10-24 15:13:41 +10:00
Peter Hutterer
03c3e4f975 Disallow disabling EV_SYN event codes
The documentation already says that, make it happen.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
2013-10-24 15:13:41 +10:00
Peter Hutterer
b15e5987b3 Reset the struct on set_fd
libevdev_set_fd may fail at a number of points. If it does, it errors out but does nothing
otherwise. Thus, a client may call set_fd again for the same struct but on a different fd and have
it succeed. Depending on when set_fd bailed out the first time, some fields may already be set.

Thus, reset the whole struct at set_fd time to make sure we're nulled out appropriately.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
2013-10-23 09:04:41 +10:00
Peter Hutterer
e1cabf4f67 Revert "Check for linux/input.h during configure"
We now ship our own linux/input.h, so no need to have the header around locally.

This reverts commit fcf80ba371.
2013-10-23 09:04:41 +10:00
Peter Hutterer
346e3eed6a Document backwards-compatibility behaviour
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-10-23 09:04:41 +10:00
Peter Hutterer
306f856f67 Work around missing EVIOCGMTSLOTS ioctl
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-10-23 09:04:41 +10:00
Peter Hutterer
ae738d29ea Make uinput-code backwards-compatible to missing UI_SET_PROPBIT ioctl
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
2013-10-23 09:04:41 +10:00
Peter Hutterer
f9bdb66ab4 When running against a kernel without properties, continue as usual
Missing out on properties is not fatal.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-10-23 09:04:41 +10:00
Peter Hutterer
caa9267290 Pass linux/input.h as argument to make-event-names.py
Rather than a hardcoded path inside the source.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-10-23 09:04:41 +10:00
Peter Hutterer
2a3219f55d Add a copy of linux/input.h
This avoids a number of otherwise required ifdefs when building on older kernels

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
2013-10-23 09:04:34 +10:00
Peter Hutterer
db3ecc334b configure: test for python and python-argparse
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
2013-10-21 20:17:22 +10:00
Peter Hutterer
0dbf1ea4f8 Don't allow a negative fd in libevdev_set_fd
Everything else responds with -EBADF, let's do so here as well.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-10-14 14:20:55 +10:00
Peter Hutterer
e8920d2fd4 Allow -1 as valid fd in libevdev_change_fd
Add a new flag for "initialized" and separate that from the fd logic. This way,
we can call libevdev_change_fd(dev, -1) to signal that the current fd should be
dropped.

Otherwise libevdev can't be told to release the fd and always keeps a reference
to it.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-10-14 14:20:55 +10:00
Peter Hutterer
fcf80ba371 Check for linux/input.h during configure
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-10-08 14:53:01 +10:00
Peter Hutterer
2660b58336 Uppercase #define LIBEVDEV_INT_H
over-eager search/replace

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-10-08 14:22:27 +10:00
Peter Hutterer
49203b040e Note that libevdev_change_fd requires a LIBEVDEV_FORCE_SYNC
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-10-04 16:15:43 +10:00
Peter Hutterer
d9fcbd563a Mark three deprecated functions as such
These are deprecated, but were missing the deprecated attribute.
And fix up the tests that were still using those deprecated calls.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-10-04 16:02:22 +10:00
Peter Hutterer
3a4706796e Use AC_MSG_RESULT to print the few configuration options
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
2013-10-02 09:55:08 +10:00
Peter Hutterer
c8b5f6a08f Disable gcov by default
Having libevdev build with profiling enabled by default
leaves profiling files around. Profiling is something that only
libevdev developers should need, so let them enable it
case-by-case.

https://bugzilla.redhat.com/show_bug.cgi?id=1012180

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
2013-10-02 09:40:43 +10:00
Stephen Kitt
92b03c9da1 Avoid shipping generated documentation twice
Only add files to EXTRA_DIST, to avoid having a full copy of doc/html as
doc/html/html in the distributed tarball.

Signed-off-by: Stephen Kitt <skitt@debian.org>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-09-24 04:21:17 +10:00
Peter Hutterer
c365d22b70 Add extern C guards to libevdev-uinput.h
Reported-by: Stanisław Halik <sthalik@misaki.pl>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-09-19 08:32:00 +10:00
Peter Hutterer
c5c7c914af Capitalize uinput header guards
victim of some overly vicious search/replace

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-09-19 08:31:33 +10:00
Peter Hutterer
f6fc441c73 libevdev 0.4
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-09-18 14:38:26 +10:00
Peter Hutterer
90fa52f4f6 Print an error on an invalid log priority
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-09-18 14:37:35 +10:00