evdev.c: fix decoding of struct input_absinfo

* evdev.c (abs_ioctl): Use umove_or_printaddr.
diff --git a/evdev.c b/evdev.c
index 2775a71..a138eda 100644
--- a/evdev.c
+++ b/evdev.c
@@ -144,24 +144,34 @@
 static int
 abs_ioctl(struct tcb *tcp, long arg)
 {
+	tprints(", ");
+
 	struct input_absinfo absinfo;
 
-	if (!verbose(tcp) || umove(tcp, arg, &absinfo) < 0)
-		return 0;
+	if (!umove_or_printaddr(tcp, arg, &absinfo)) {
+		tprintf("{value=%u"
+			", minimum=%u, ",
+			absinfo.value,
+			absinfo.minimum);
 
-	tprintf(", {value=%" PRIu32 ", minimum=%" PRIu32,
-		absinfo.value, absinfo.minimum);
-	if (!abbrev(tcp)) {
-		tprintf(", maximum=%" PRIu32 ", fuzz=%" PRIu32,
-			absinfo.maximum, absinfo.fuzz);
-		tprintf(", flat=%" PRIu32, absinfo.flat);
+		if (!abbrev(tcp)) {
+			tprintf("maximum=%u"
+				", fuzz=%u"
+				", flat=%u",
+				absinfo.maximum,
+				absinfo.fuzz,
+				absinfo.flat);
 # ifdef HAVE_STRUCT_INPUT_ABSINFO_RESOLUTION
-		tprintf(", resolution=%" PRIu32, absinfo.resolution);
+			tprintf(", resolution=%u",
+				absinfo.resolution);
 # endif
+		} else {
+			tprints("...");
+		}
+
 		tprints("}");
-	} else {
-		tprints(", ...}");
 	}
+
 	return 1;
 }