mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2026-02-05 06:20:26 +01:00
Merge branch 'master' into tablet-support
This commit is contained in:
commit
21e3d416ee
11 changed files with 102 additions and 61 deletions
7
.gitignore
vendored
7
.gitignore
vendored
|
|
@ -3,6 +3,13 @@
|
|||
*.la
|
||||
*.lo
|
||||
*.swp
|
||||
*~
|
||||
*.sig
|
||||
*.tar.*
|
||||
*.announce
|
||||
*.patch
|
||||
*.rej
|
||||
*.trs
|
||||
Makefile
|
||||
Makefile.in
|
||||
aclocal.m4
|
||||
|
|
|
|||
1
.vimdir
Normal file
1
.vimdir
Normal file
|
|
@ -0,0 +1 @@
|
|||
set noexpandtab shiftwidth=8 cinoptions=:0,+0,(0
|
||||
14
src/evdev.c
14
src/evdev.c
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue