summaryrefslogtreecommitdiff
path: root/pkg/libevdev/patch/0001-Avoid-statement-expressions.patch
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2019-06-16 17:19:49 -0700
committerMichael Forney <mforney@mforney.org>2019-06-17 00:05:52 -0700
commit70e6a1409d8b62415831a344aff20c530e628723 (patch)
treea0bd893444557d00cdb28b1d076603517141c619 /pkg/libevdev/patch/0001-Avoid-statement-expressions.patch
parent5c83a38b4de256a94cb1941e8ac53d632dddd356 (diff)
libevdev: Fix a few portability issues
Diffstat (limited to 'pkg/libevdev/patch/0001-Avoid-statement-expressions.patch')
-rw-r--r--pkg/libevdev/patch/0001-Avoid-statement-expressions.patch77
1 files changed, 77 insertions, 0 deletions
diff --git a/pkg/libevdev/patch/0001-Avoid-statement-expressions.patch b/pkg/libevdev/patch/0001-Avoid-statement-expressions.patch
new file mode 100644
index 00000000..7e5d8072
--- /dev/null
+++ b/pkg/libevdev/patch/0001-Avoid-statement-expressions.patch
@@ -0,0 +1,77 @@
+From 2502b02e69ad84e1e8e96fa1683968e72bbd0501 Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Sun, 16 Jun 2019 17:05:30 -0700
+Subject: [PATCH] Avoid statement expressions
+
+---
+ libevdev/libevdev-int.h | 3 ++-
+ libevdev/libevdev-util.h | 13 -------------
+ libevdev/libevdev.c | 7 ++++++-
+ 3 files changed, 8 insertions(+), 15 deletions(-)
+
+diff --git a/libevdev/libevdev-int.h b/libevdev/libevdev-int.h
+index e1c7ec5..b92d8d5 100644
+--- a/libevdev/libevdev-int.h
++++ b/libevdev/libevdev-int.h
+@@ -198,7 +198,8 @@ queue_shift_multiple(struct libevdev *dev, size_t n, struct input_event *ev)
+ return 0;
+
+ remaining = dev->queue_next;
+- n = min(n, remaining);
++ if (remaining < n)
++ n = remaining;
+ remaining -= n;
+
+ if (ev)
+diff --git a/libevdev/libevdev-util.h b/libevdev/libevdev-util.h
+index c6e1197..e8b6769 100644
+--- a/libevdev/libevdev-util.h
++++ b/libevdev/libevdev-util.h
+@@ -32,19 +32,6 @@
+ #define ARRAY_LENGTH(a) (sizeof(a) / (sizeof((a)[0])))
+ #define unlikely(x) (__builtin_expect(!!(x),0))
+
+-#undef min
+-#undef max
+-#define min(a,b) \
+- ({ __typeof__ (a) _a = (a); \
+- __typeof__ (b) _b = (b); \
+- _a > _b ? _b : _a; \
+- })
+-#define max(a,b) \
+- ({ __typeof__ (a) _a = (a); \
+- __typeof__ (b) _b = (b); \
+- _a > _b ? _a : _b; \
+- })
+-
+ static inline bool
+ startswith(const char *str, size_t len, const char *prefix, size_t plen)
+ {
+diff --git a/libevdev/libevdev.c b/libevdev/libevdev.c
+index c5798b4..e5abe91 100644
+--- a/libevdev/libevdev.c
++++ b/libevdev/libevdev.c
+@@ -67,6 +67,7 @@ init_event_queue(struct libevdev *dev)
+ int nevents = 1; /* terminating SYN_REPORT */
+ int nslots;
+ unsigned int type, code;
++ size_t size;
+
+ /* count the number of axes, keys, etc. to get a better idea at how
+ many events per EV_SYN we could possibly get. That's the max we
+@@ -94,7 +95,11 @@ init_event_queue(struct libevdev *dev)
+ nevents += num_mt_axes * (nslots - 1);
+ }
+
+- return queue_alloc(dev, max(MIN_QUEUE_SIZE, nevents * 2));
++ size = nevents * 2;
++ if (size < MIN_QUEUE_SIZE)
++ size = MIN_QUEUE_SIZE;
++
++ return queue_alloc(dev, size);
+ }
+
+ static void
+--
+2.20.1
+