From d616218c9ab60adea3f7a99e2fceaf21cde3b188 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Wed, 12 Sep 2018 13:28:16 +1000 Subject: [PATCH 1/3] tools: fix a bunch of format conversion complaints Fixes #137 Signed-off-by: Peter Hutterer --- tools/libinput-record.c | 64 ++++++++++++++++++++--------------------- tools/shared.c | 2 +- 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/tools/libinput-record.c b/tools/libinput-record.c index 0f1cb174..3f4bb7ff 100644 --- a/tools/libinput-record.c +++ b/tools/libinput-record.c @@ -379,8 +379,8 @@ buffer_key_event(struct record_context *ctx, snprintf(event->u.libinput.msg, sizeof(event->u.libinput.msg), "{time: %ld.%06ld, type: %s, key: %d, state: %s}", - time / (int)1e6, - time % (int)1e6, + (long)(time / (int)1e6), + (long)(time % (int)1e6), type, key, state == LIBINPUT_KEY_STATE_PRESSED ? "pressed" : "released"); @@ -414,8 +414,8 @@ buffer_motion_event(struct record_context *ctx, snprintf(event->u.libinput.msg, sizeof(event->u.libinput.msg), "{time: %ld.%06ld, type: %s, delta: [%6.2f, %6.2f], unaccel: [%6.2f, %6.2f]}", - time / (int)1e6, - time % (int)1e6, + (long)(time / (int)1e6), + (long)(time % (int)1e6), type, x, y, uax, uay); @@ -449,8 +449,8 @@ buffer_absmotion_event(struct record_context *ctx, snprintf(event->u.libinput.msg, sizeof(event->u.libinput.msg), "{time: %ld.%06ld, type: %s, point: [%6.2f, %6.2f], transformed: [%6.2f, %6.2f]}", - time / (int)1e6, - time % (int)1e6, + (long)(time / (int)1e6), + (long)(time % (int)1e6), type, x, y, tx, ty); @@ -484,8 +484,8 @@ buffer_pointer_button_event(struct record_context *ctx, snprintf(event->u.libinput.msg, sizeof(event->u.libinput.msg), "{time: %ld.%06ld, type: %s, button: %d, state: %s, seat_count: %u}", - time / (int)1e6, - time % (int)1e6, + (long)(time / (int)1e6), + (long)(time % (int)1e6), type, button, state == LIBINPUT_BUTTON_STATE_PRESSED ? "pressed" : "released", @@ -541,8 +541,8 @@ buffer_pointer_axis_event(struct record_context *ctx, snprintf(event->u.libinput.msg, sizeof(event->u.libinput.msg), "{time: %ld.%06ld, type: %s, axes: [%2.2f, %2.2f], discrete: [%d, %d], source: %s}", - time / (int)1e6, - time % (int)1e6, + (long)(time / (int)1e6), + (long)(time % (int)1e6), type, h, v, hd, vd, @@ -596,8 +596,8 @@ buffer_touch_event(struct record_context *ctx, snprintf(event->u.libinput.msg, sizeof(event->u.libinput.msg), "{time: %ld.%06ld, type: %s}", - time / (int)1e6, - time % (int)1e6, + (long)(time / (int)1e6), + (long)(time % (int)1e6), type); break; case LIBINPUT_EVENT_TOUCH_DOWN: @@ -609,8 +609,8 @@ buffer_touch_event(struct record_context *ctx, snprintf(event->u.libinput.msg, sizeof(event->u.libinput.msg), "{time: %ld.%06ld, type: %s, slot: %d, seat_slot: %d, point: [%6.2f, %6.2f], transformed: [%6.2f, %6.2f]}", - time / (int)1e6, - time % (int)1e6, + (long)(time / (int)1e6), + (long)(time % (int)1e6), type, slot, seat_slot, @@ -622,8 +622,8 @@ buffer_touch_event(struct record_context *ctx, snprintf(event->u.libinput.msg, sizeof(event->u.libinput.msg), "{time: %ld.%06ld, type: %s, slot: %d, seat_slot: %d}", - time / (int)1e6, - time % (int)1e6, + (long)(time / (int)1e6), + (long)(time % (int)1e6), type, slot, seat_slot); @@ -679,8 +679,8 @@ buffer_gesture_event(struct record_context *ctx, "{time: %ld.%06ld, type: %s, nfingers: %d, " "delta: [%6.2f, %6.2f], unaccel: [%6.2f, %6.2f], " "angle_delta: %6.2f, scale: %6.2f}", - time / (int)1e6, - time % (int)1e6, + (long)(time / (int)1e6), + (long)(time % (int)1e6), type, libinput_event_gesture_get_finger_count(g), libinput_event_gesture_get_dx(g), @@ -698,8 +698,8 @@ buffer_gesture_event(struct record_context *ctx, sizeof(event->u.libinput.msg), "{time: %ld.%06ld, type: %s, nfingers: %d, " "delta: [%6.2f, %6.2f], unaccel: [%6.2f, %6.2f]}", - time / (int)1e6, - time % (int)1e6, + (long)(time / (int)1e6), + (long)(time % (int)1e6), type, libinput_event_gesture_get_finger_count(g), libinput_event_gesture_get_dx(g), @@ -875,8 +875,8 @@ buffer_tablet_tool_proximity_event(struct record_context *ctx, snprintf(event->u.libinput.msg, sizeof(event->u.libinput.msg), "{time: %ld.%06ld, type: %s, proximity: %s, tool-type: %s, serial: %" PRIu64 ", axes: %s, %s}", - time / (int)1e6, - time % (int)1e6, + (long)(time / (int)1e6), + (long)(time % (int)1e6), type, prox ? "in" : "out", tool_type, @@ -917,8 +917,8 @@ buffer_tablet_tool_button_event(struct record_context *ctx, snprintf(event->u.libinput.msg, sizeof(event->u.libinput.msg), "{time: %ld.%06ld, type: %s, button: %d, state: %s}", - time / (int)1e6, - time % (int)1e6, + (long)(time / (int)1e6), + (long)(time % (int)1e6), type, button, state ? "pressed" : "released"); @@ -974,8 +974,8 @@ buffer_tablet_tool_event(struct record_context *ctx, snprintf(event->u.libinput.msg, sizeof(event->u.libinput.msg), "{time: %ld.%06ld, type: %s%s, tip: %s, %s}", - time / (int)1e6, - time % (int)1e6, + (long)(time / (int)1e6), + (long)(time % (int)1e6), type, btn_buffer, /* may be empty string */ tip ? "down" : "up", @@ -1016,8 +1016,8 @@ buffer_tablet_pad_button_event(struct record_context *ctx, snprintf(event->u.libinput.msg, sizeof(event->u.libinput.msg), "{time: %ld.%06ld, type: %s, button: %d, state: %s, mode: %d, is-toggle: %s}", - time / (int)1e6, - time % (int)1e6, + (long)(time / (int)1e6), + (long)(time % (int)1e6), type, button, state == LIBINPUT_BUTTON_STATE_PRESSED ? "pressed" : "released", @@ -1083,8 +1083,8 @@ buffer_tablet_pad_ringstrip_event(struct record_context *ctx, snprintf(event->u.libinput.msg, sizeof(event->u.libinput.msg), "{time: %ld.%06ld, type: %s, number: %d, position: %.2f, source: %s, mode: %d}", - time / (int)1e6, - time % (int)1e6, + (long)(time / (int)1e6), + (long)(time % (int)1e6), type, number, pos, @@ -1121,8 +1121,8 @@ buffer_switch_event(struct record_context *ctx, snprintf(event->u.libinput.msg, sizeof(event->u.libinput.msg), "{time: %ld.%06ld, type: %s, switch: %d, state: %s}", - time / (int)1e6, - time % (int)1e6, + (long)(time / (int)1e6), + (long)(time % (int)1e6), type, sw, state == LIBINPUT_SWITCH_STATE_ON ? "on" : "off"); diff --git a/tools/shared.c b/tools/shared.c index b103470b..41bed879 100644 --- a/tools/shared.c +++ b/tools/shared.c @@ -697,7 +697,7 @@ tools_list_device_quirks(struct quirks_context *ctx, case QUIRK_ATTR_SIZE_HINT: case QUIRK_ATTR_RESOLUTION_HINT: quirks_get_dimensions(quirks, *q, &dim); - snprintf(buf, sizeof(buf), "%s=%ldx%ld", name, dim.x, dim.y); + snprintf(buf, sizeof(buf), "%s=%zdx%zd", name, dim.x, dim.y); callback(userdata, buf); break; case QUIRK_ATTR_TOUCH_SIZE_RANGE: -- 2.18.0 From c501dabf396e6aeae41869cd2b57809f6d565378 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Thu, 13 Sep 2018 08:18:16 +1000 Subject: [PATCH 2/3] util: check for < 0 explicitly in safe_atou The previous check only worked if sizeof(long) > sizeof(int). Rather than be fancy about it, just cast to a signed long, check for negativity and continue based on that. Fixes #137 Signed-off-by: Peter Hutterer --- src/libinput-util.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libinput-util.h b/src/libinput-util.h index ff8d56fb..360e3906 100644 --- a/src/libinput-util.h +++ b/src/libinput-util.h @@ -538,7 +538,7 @@ safe_atou_base(const char *str, unsigned int *val, int base) if (*str != '\0' && *endptr != '\0') return false; - if (v > UINT_MAX) + if ((long)v < 0) return false; *val = v; -- 2.18.0 From 037bd0cc9c2675f789f8fbca1a8572c0a2090e23 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 14 Sep 2018 10:19:55 +1000 Subject: [PATCH 3/3] test: drop a condition from the safe_atou test If sizeof(long) == sizeof(int), this test won't pass so let's drop it altogether. Fixes #137 Signed-off-by: Peter Hutterer --- test/test-misc.c | 1 - 1 file changed, 1 deletion(-) diff --git a/test/test-misc.c b/test/test-misc.c index a7f97acd..9a22add1 100644 --- a/test/test-misc.c +++ b/test/test-misc.c @@ -1157,7 +1157,6 @@ START_TEST(safe_atou_test) { "-1", false, 0 }, { "2147483647", true, 2147483647 }, { "-2147483648", false, 0}, - { "4294967295", true, 4294967295 }, { "0x0", false, 0 }, { "-10x10", false, 0 }, { "1x-99", false, 0 }, -- 2.18.0