[packages/evemu] - use input_event macros for time data access

baggins baggins at pld-linux.org
Thu May 7 23:17:01 CEST 2026


commit 7c1d724ca48fcfbfa710651537b242832697baa9
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Fri May 8 01:16:36 2026 +0200

    - use input_event macros for time data access

 evemu.spec             |   2 +
 input_event-time.patch | 103 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 105 insertions(+)
---
diff --git a/evemu.spec b/evemu.spec
index 8369d6b..00f6258 100644
--- a/evemu.spec
+++ b/evemu.spec
@@ -7,6 +7,7 @@ License:	LGPL v3
 Group:		Libraries
 Source0:	https://www.freedesktop.org/software/evemu/%{name}-%{version}.tar.xz
 # Source0-md5:	bc1e819ac06e3444e2f47b88171d2597
+Patch0:		input_event-time.patch
 URL:		https://www.freedesktop.org/wiki/Evemu/
 BuildRequires:	asciidoc
 BuildRequires:	autoconf >= 2.60
@@ -71,6 +72,7 @@ Pythonowy interfejs do biblioteki evemu.
 
 %prep
 %setup -q
+%patch -P0 -p1
 
 %build
 %{__libtoolize}
diff --git a/input_event-time.patch b/input_event-time.patch
new file mode 100644
index 0000000..462101a
--- /dev/null
+++ b/input_event-time.patch
@@ -0,0 +1,103 @@
+--- evemu-2.7.0/src/evemu.c.orig	2017-06-02 10:02:09.000000000 +0200
++++ evemu-2.7.0/src/evemu.c	2026-05-08 01:14:20.073347601 +0200
+@@ -733,9 +733,9 @@
+ 	return rc;
+ }
+ 
+-static inline unsigned long millis(const struct timeval *tv)
++static inline unsigned long millis(const struct input_event *ev)
+ {
+-	return tv->tv_sec * 1000 + tv->tv_usec/1000;
++	return ev->input_event_sec * 1000 + ev->input_event_usec/1000;
+ }
+ 
+ static int write_event_desc(FILE *fp, const struct input_event *ev)
+@@ -750,7 +750,7 @@
+ 				     libevdev_event_code_get_name(ev->type, ev->code),
+ 				     ev->value);
+ 		} else {
+-			time = millis(&ev->time);
++			time = millis(ev);
+ 			dt = time - last_ms;
+ 			last_ms = time;
+ 			rc = fprintf(fp, "# ------------ %s (%d) ---------- %+ldms\n",
+@@ -771,13 +771,17 @@
+ {
+ 	int rc;
+ 	rc = fprintf(fp, "E: %lu.%06u %04x %04x %04d	",
+-		     ev->time.tv_sec, (unsigned)ev->time.tv_usec,
++		     ev->input_event_sec, (unsigned)ev->input_event_usec,
+ 		     ev->type, ev->code, ev->value);
+ 	rc += write_event_desc(fp, ev);
+ 	return rc;
+ }
+ 
+-static inline long time_to_long(const struct timeval *tv) {
++static inline long time_to_long(const struct input_event *ev) {
++	return ev->input_event_sec * 1000000L + ev->input_event_usec;
++}
++
++static inline long etime_to_long(const struct timeval *tv) {
+ 	return tv->tv_sec * 1000000L + tv->tv_usec;
+ }
+ 
+@@ -803,10 +807,12 @@
+ 			long time;
+ 
+ 			if (offset == 0)
+-				offset = time_to_long(&ev.time) - 1;
++				offset = time_to_long(&ev) - 1;
+ 
+-			time = time_to_long(&ev.time);
+-			ev.time = long_to_time(time - offset);
++			time = time_to_long(&ev);
++			struct timeval tv = long_to_time(time - offset);
++			ev.input_event_sec = tv.tv_sec;
++			ev.input_event_usec = tv.tv_usec;
+ 			evemu_write_event(fp, &ev);
+ 			fflush(fp);
+ 		}
+@@ -839,8 +845,8 @@
+ 		return -1;
+ 	}
+ 
+-	ev->time.tv_sec = sec;
+-	ev->time.tv_usec = usec;
++	ev->input_event_sec = sec;
++	ev->input_event_usec = usec;
+ 	ev->type = type;
+ 	ev->code = code;
+ 	ev->value = value;
+@@ -852,8 +858,8 @@
+ 
+ int evemu_create_event(struct input_event *ev, int type, int code, int value)
+ {
+-	ev->time.tv_sec = 0;
+-	ev->time.tv_usec = 0;
++	ev->input_event_sec = 0;
++	ev->input_event_usec = 0;
+ 	ev->type = type;
+ 	ev->code = code;
+ 	ev->value = value;
+@@ -882,14 +888,17 @@
+ 		return ret;
+ 
+ 	if (evtime) {
+-		if (evtime->tv_sec == 0 && evtime->tv_usec == 0)
+-			*evtime = ev->time;
+-		usec = time_to_long(&ev->time) - time_to_long(evtime);
++		if (evtime->tv_sec == 0 && evtime->tv_usec == 0) {
++			evtime->tv_sec = ev->input_event_sec;
++			evtime->tv_usec = ev->input_event_usec;
++		}
++		usec = time_to_long(ev) - etime_to_long(evtime);
+ 		if (usec > ERROR_MARGIN * 2) {
+ 			if (usec > s2us(10))
+ 				error(INFO, "Sleeping for %lds.\n", us2s(usec));
+ 			usleep(usec - ERROR_MARGIN);
+-			*evtime = ev->time;
++			evtime->tv_sec = ev->input_event_sec;
++			evtime->tv_usec = ev->input_event_usec;
+ 		}
+ 	}
+ 
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/evemu.git/commitdiff/7c1d724ca48fcfbfa710651537b242832697baa9



More information about the pld-cvs-commit mailing list