[PATCH libinput] evdev: log all evdev_msg_* on one line

Peter Hutterer peter.hutterer at who-t.net
Tue Feb 6 02:04:30 UTC 2018


So we don't have to have newline handling in the callers. This effectively
reverts 6ab2999be90331 "test: detect linebreaks in log messages".

https://bugs.freedesktop.org/show_bug.cgi?id=104957

Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
 src/evdev.h   | 21 ++++++++++-----------
 test/litest.c | 15 +++------------
 2 files changed, 13 insertions(+), 23 deletions(-)

diff --git a/src/evdev.h b/src/evdev.h
index 75223852..20a7e352 100644
--- a/src/evdev.h
+++ b/src/evdev.h
@@ -666,19 +666,18 @@ evdev_log_msg_va(struct evdev_device *device,
 		 const char *format,
 		 va_list args)
 {
+	char buf[1024];
+
 	/* Anything info and above is user-visible, use the device name */
-	log_msg(evdev_libinput_context(device),
-		priority,
-		"%-7s - %s%s",
-		evdev_device_get_sysname(device),
-		(priority > LIBINPUT_LOG_PRIORITY_DEBUG) ?  device->devname : "",
-		(priority > LIBINPUT_LOG_PRIORITY_DEBUG) ?  ": " : ""
-		);
+	snprintf(buf,
+		 sizeof(buf),
+		 "%-7s - %s%s%s",
+		 evdev_device_get_sysname(device),
+		 (priority > LIBINPUT_LOG_PRIORITY_DEBUG) ?  device->devname : "",
+		 (priority > LIBINPUT_LOG_PRIORITY_DEBUG) ?  ": " : "",
+		 format);
 
-	log_msg_va(evdev_libinput_context(device),
-		   priority,
-		   format,
-		   args);
+	log_msg_va(evdev_libinput_context(device), priority, buf, args);
 }
 
 LIBINPUT_ATTRIBUTE_PRINTF(3, 4)
diff --git a/test/litest.c b/test/litest.c
index dcbed5c9..a31e874e 100644
--- a/test/litest.c
+++ b/test/litest.c
@@ -636,7 +636,6 @@ litest_log_handler(struct libinput *libinput,
 		   va_list args)
 {
 	static int is_tty = -1;
-	static bool had_newline = true;
 	const char *priority = NULL;
 	const char *color;
 
@@ -662,11 +661,7 @@ litest_log_handler(struct libinput *libinput,
 
 	if (!is_tty)
 		color = "";
-
-	if (had_newline)
-		fprintf(stderr, "%slitest %s ", color, priority);
-
-	if (strstr(format, "tap state:"))
+	else if (strstr(format, "tap state:"))
 		color = ANSI_BLUE;
 	else if (strstr(format, "thumb state:"))
 		color = ANSI_YELLOW;
@@ -681,13 +676,9 @@ litest_log_handler(struct libinput *libinput,
 	else if (strstr(format, "edge state:"))
 		color = ANSI_BRIGHT_GREEN;
 
-	if (is_tty)
-		fprintf(stderr, "%s ", color);
-
+	fprintf(stderr, "%slitest %s ", color, priority);
 	vfprintf(stderr, format, args);
-	had_newline = strlen(format) >= 1 &&
-		      format[strlen(format) - 1] == '\n';
-	if (is_tty && had_newline)
+	if (is_tty)
 		fprintf(stderr, ANSI_NORMAL);
 
 	if (strstr(format, "client bug: ") ||
-- 
2.14.3



More information about the wayland-devel mailing list