Merge branch 'master' into tablet-support

This commit is contained in:
Peter Hutterer 2015-05-26 10:39:04 +10:00
commit 21e3d416ee
11 changed files with 102 additions and 61 deletions

7
.gitignore vendored
View file

@ -3,6 +3,13 @@
*.la
*.lo
*.swp
*~
*.sig
*.tar.*
*.announce
*.patch
*.rej
*.trs
Makefile
Makefile.in
aclocal.m4

1
.vimdir Normal file
View file

@ -0,0 +1 @@
set noexpandtab shiftwidth=8 cinoptions=:0,+0,(0

View file

@ -1976,13 +1976,13 @@ evdev_notify_added_device(struct evdev_device *device)
device->dispatch);
}
static int
evdev_device_compare_syspath(struct udev_device *udev_device, int fd)
static bool
evdev_device_have_same_syspath(struct udev_device *udev_device, int fd)
{
struct udev *udev = udev_device_get_udev(udev_device);
struct udev_device *udev_device_new = NULL;
struct stat st;
int rc = 1;
bool rc = false;
if (fstat(fd, &st) < 0)
goto out;
@ -1991,8 +1991,8 @@ evdev_device_compare_syspath(struct udev_device *udev_device, int fd)
if (!udev_device_new)
goto out;
rc = strcmp(udev_device_get_syspath(udev_device_new),
udev_device_get_syspath(udev_device));
rc = streq(udev_device_get_syspath(udev_device_new),
udev_device_get_syspath(udev_device));
out:
if (udev_device_new)
udev_device_unref(udev_device_new);
@ -2058,7 +2058,7 @@ evdev_device_create(struct libinput_seat *seat,
return NULL;
}
if (evdev_device_compare_syspath(udev_device, fd) != 0)
if (!evdev_device_have_same_syspath(udev_device, fd))
goto err;
device = zalloc(sizeof *device);
@ -2500,7 +2500,7 @@ evdev_device_resume(struct evdev_device *device)
if (fd < 0)
return -errno;
if (evdev_device_compare_syspath(device->udev_device, fd)) {
if (!evdev_device_have_same_syspath(device->udev_device, fd)) {
close_restricted(libinput, fd);
return -ENODEV;
}

View file

@ -83,6 +83,8 @@ int list_empty(const struct list *list);
#define min(a, b) (((a) < (b)) ? (a) : (b))
#define max(a, b) (((a) > (b)) ? (a) : (b))
#define streq(s1, s2) (strcmp((s1), (s2)) == 0)
#define strneq(s1, s2, n) (strncmp((s1), (s2), (n)) == 0)
#define NCHARS(x) ((size_t)(((x) + 7) / 8))

View file

@ -101,8 +101,8 @@ path_seat_get_named(struct path_input *input,
struct path_seat *seat;
list_for_each(seat, &input->base.seat_list, base.link) {
if (strcmp(seat->base.physical_name, seat_name_physical) == 0 &&
strcmp(seat->base.logical_name, seat_name_logical) == 0)
if (streq(seat->base.physical_name, seat_name_physical) &&
streq(seat->base.logical_name, seat_name_logical))
return seat;
}

View file

@ -57,7 +57,7 @@ device_added(struct udev_device *udev_device,
if (!device_seat)
device_seat = default_seat;
if (strcmp(device_seat, input->seat_id))
if (!streq(device_seat, input->seat_id))
return 0;
devnode = udev_device_get_devnode(udev_device);
@ -131,8 +131,8 @@ device_removed(struct udev_device *udev_device, struct udev_input *input)
list_for_each(seat, &input->base.seat_list, base.link) {
list_for_each_safe(device, next,
&seat->base.devices_list, base.link) {
if (!strcmp(syspath,
udev_device_get_syspath(device->udev_device))) {
if (streq(syspath,
udev_device_get_syspath(device->udev_device))) {
log_info(&input->base,
"input device %s, %s removed\n",
device->devname,
@ -198,9 +198,9 @@ evdev_udev_handler(void *data)
if (strncmp("event", udev_device_get_sysname(udev_device), 5) != 0)
goto out;
if (!strcmp(action, "add"))
if (streq(action, "add"))
device_added(udev_device, input, NULL);
else if (!strcmp(action, "remove"))
else if (streq(action, "remove"))
device_removed(udev_device, input);
out:
@ -328,7 +328,7 @@ udev_seat_get_named(struct udev_input *input, const char *seat_name)
struct udev_seat *seat;
list_for_each(seat, &input->base.seat_list, base.link) {
if (strcmp(seat->base.logical_name, seat_name) == 0)
if (streq(seat->base.logical_name, seat_name))
return seat;
}

View file

@ -56,11 +56,6 @@ const char *filter_test = NULL;
const char *filter_device = NULL;
const char *filter_group = NULL;
#ifdef HAVE_LIBUNWIND
#define UNW_LOCAL_ONLY
#include <libunwind.h>
#include <dlfcn.h>
/* defined for the litest selftest */
#ifndef LITEST_DISABLE_BACKTRACE_LOGGING
#define litest_log(...) fprintf(stderr, __VA_ARGS__)
@ -70,6 +65,11 @@ const char *filter_group = NULL;
#define litest_vlog(...) /* __VA_ARGS__ */
#endif
#ifdef HAVE_LIBUNWIND
#define UNW_LOCAL_ONLY
#include <libunwind.h>
#include <dlfcn.h>
static char cwd[PATH_MAX];
static bool
@ -82,7 +82,7 @@ litest_backtrace_get_lineno(const char *executable,
FILE* f;
char buffer[PATH_MAX];
char *s;
int i;
unsigned int i;
if (!cwd[0])
getcwd(cwd, sizeof(cwd));
@ -99,8 +99,11 @@ litest_backtrace_get_lineno(const char *executable,
}
buffer[0] = '?';
fgets(buffer, sizeof(buffer), f);
fclose(f);
if (fgets(buffer, sizeof(buffer), f) == NULL) {
pclose(f);
return false;
}
pclose(f);
if (buffer[0] == '?')
return false;
@ -116,7 +119,7 @@ litest_backtrace_get_lineno(const char *executable,
/* now strip cwd from buffer */
s = buffer;
i = 0;
while(cwd[i] == *s) {
while(i < strlen(cwd) && *s != '\0' && cwd[i] == *s) {
*s = '\0';
s++;
i++;
@ -437,7 +440,7 @@ litest_add_tcase_for_device(struct suite *suite,
const char *test_name = dev->shortname;
list_for_each(t, &suite->tests, node) {
if (strcmp(t->name, test_name) != 0)
if (!streq(t->name, test_name))
continue;
if (range)
@ -481,7 +484,7 @@ litest_add_tcase_no_device(struct suite *suite,
return;
list_for_each(t, &suite->tests, node) {
if (strcmp(t->name, test_name) != 0)
if (!streq(t->name, test_name))
continue;
if (range)
@ -509,7 +512,7 @@ get_suite(const char *name)
list_init(&all_tests);
list_for_each(s, &all_tests, node) {
if (strcmp(s->name, name) == 0)
if (streq(s->name, name))
return s;
}
@ -648,6 +651,10 @@ _litest_add_ranged_for_device(const char *name,
assert(type < LITEST_NO_DEVICE);
if (filter_test &&
fnmatch(filter_test, funcname, 0) != 0)
return;
if (filter_group &&
fnmatch(filter_group, name, 0) != 0)
return;
@ -700,20 +707,6 @@ is_debugger_attached(void)
return rc;
}
static void
litest_list_tests(struct list *tests)
{
struct suite *s;
list_for_each(s, tests, node) {
struct test *t;
printf("%s:\n", s->name);
list_for_each(t, &s->tests, node) {
printf(" %s\n", t->name);
}
}
}
static void
litest_log_handler(struct libinput *libinput,
enum libinput_log_priority pri,
@ -759,6 +752,12 @@ litest_run(int argc, char **argv)
int failed;
SRunner *sr = NULL;
if (list_empty(&all_tests)) {
fprintf(stderr,
"Error: filters are too strict, no tests to run.\n");
return 1;
}
if (in_debugger == -1) {
in_debugger = is_debugger_attached();
if (in_debugger)
@ -2272,7 +2271,13 @@ litest_semi_mt_touch_up(struct litest_device *d,
litest_event(d, EV_SYN, SYN_REPORT, 0);
}
static inline int
enum litest_mode {
LITEST_MODE_ERROR,
LITEST_MODE_TEST,
LITEST_MODE_LIST,
};
static inline enum litest_mode
litest_parse_argv(int argc, char **argv)
{
enum {
@ -2309,29 +2314,52 @@ litest_parse_argv(int argc, char **argv)
filter_group = optarg;
break;
case OPT_LIST:
litest_list_tests(&all_tests);
exit(0);
return LITEST_MODE_LIST;
case OPT_VERBOSE:
verbose = 1;
break;
default:
fprintf(stderr, "usage: %s [--list]\n", argv[0]);
return 1;
return LITEST_MODE_ERROR;
}
}
return 0;
return LITEST_MODE_TEST;
}
#ifndef LITEST_NO_MAIN
static void
litest_list_tests(struct list *tests)
{
struct suite *s;
list_for_each(s, tests, node) {
struct test *t;
printf("%s:\n", s->name);
list_for_each(t, &s->tests, node) {
printf(" %s\n", t->name);
}
}
}
int
main(int argc, char **argv)
{
if (litest_parse_argv(argc, argv) != 0)
enum litest_mode mode;
list_init(&all_tests);
mode = litest_parse_argv(argc, argv);
if (mode == LITEST_MODE_ERROR)
return EXIT_FAILURE;
litest_setup_tests();
if (mode == LITEST_MODE_LIST) {
litest_list_tests(&all_tests);
return EXIT_SUCCESS;
}
return litest_run(argc, argv);
}
#endif

View file

@ -26,6 +26,7 @@
#include <errno.h>
#include <fcntl.h>
#include <libinput.h>
#include <libinput-util.h>
#include <libudev.h>
#include <unistd.h>
@ -184,7 +185,7 @@ START_TEST(udev_added_seat_default)
ck_assert(seat != NULL);
seat_name = libinput_seat_get_logical_name(seat);
default_seat_found = !strcmp(seat_name, "default");
default_seat_found = streq(seat_name, "default");
libinput_event_destroy(event);
}

View file

@ -30,6 +30,7 @@
#include <libudev.h>
#include <libinput.h>
#include <libinput-util.h>
#include <libinput-version.h>
#include "shared.h"
@ -279,10 +280,10 @@ main(int argc, char **argv)
struct libinput_event *ev;
if (argc > 1) {
if (strcmp(argv[1], "--help") == 0) {
if (streq(argv[1], "--help")) {
usage();
return 0;
} else if (strcmp(argv[1], "--version") == 0) {
} else if (streq(argv[1], "--version")) {
printf("%s\n", LIBINPUT_VERSION);
return 0;
} else {

View file

@ -220,13 +220,13 @@ main(int argc, char **argv)
switch (c) {
case OPT_MODE:
if (strcmp(optarg, "accel") == 0)
if (streq(optarg, "accel"))
print_accel = true;
else if (strcmp(optarg, "motion") == 0)
else if (streq(optarg, "motion"))
print_motion = true;
else if (strcmp(optarg, "delta") == 0)
else if (streq(optarg, "delta"))
print_delta = true;
else if (strcmp(optarg, "sequence") == 0)
else if (streq(optarg, "sequence"))
print_sequence = true;
else {
usage();

View file

@ -31,6 +31,7 @@
#include <libudev.h>
#include <libevdev/libevdev.h>
#include <libinput-util.h>
#include "shared.h"
@ -189,13 +190,13 @@ tools_parse_args(int argc, char **argv, struct tools_options *options)
tools_usage();
return 1;
}
if (strcmp(optarg, "none") == 0) {
if (streq(optarg, "none")) {
options->click_method =
LIBINPUT_CONFIG_CLICK_METHOD_NONE;
} else if (strcmp(optarg, "clickfinger") == 0) {
} else if (streq(optarg, "clickfinger")) {
options->click_method =
LIBINPUT_CONFIG_CLICK_METHOD_CLICKFINGER;
} else if (strcmp(optarg, "buttonareas") == 0) {
} else if (streq(optarg, "buttonareas")) {
options->click_method =
LIBINPUT_CONFIG_CLICK_METHOD_BUTTON_AREAS;
} else {
@ -208,16 +209,16 @@ tools_parse_args(int argc, char **argv, struct tools_options *options)
tools_usage();
return 1;
}
if (strcmp(optarg, "none") == 0) {
if (streq(optarg, "none")) {
options->scroll_method =
LIBINPUT_CONFIG_SCROLL_NO_SCROLL;
} else if (strcmp(optarg, "twofinger") == 0) {
} else if (streq(optarg, "twofinger")) {
options->scroll_method =
LIBINPUT_CONFIG_SCROLL_2FG;
} else if (strcmp(optarg, "edge") == 0) {
} else if (streq(optarg, "edge")) {
options->scroll_method =
LIBINPUT_CONFIG_SCROLL_EDGE;
} else if (strcmp(optarg, "button") == 0) {
} else if (streq(optarg, "button")) {
options->scroll_method =
LIBINPUT_CONFIG_SCROLL_ON_BUTTON_DOWN;
} else {