[PATCH] xev: fix KeymapNotify event printing

Goblin xorg-nospam at uukgoblin.net
Fri Feb 18 22:20:07 UTC 2022


Hello everyone,

When xev prints the KeymapNotify event (after the user brings the xev window
into focus), it incorrectly displays unsigned char values >= 128. For
instance, 128 is printed as 42949667168.

This can be seen for instance by holding the '6' key (which has the
keycode 15) and then bringing the xev window into focus. Observe the
KeymapNotify event, the second number after "keys: " will be 42949667168.
If you instead hold the '5' key (which has the keycode 14), you'll see
64 there, as expected.

No-one seems to have noticed since at least the last millenium ;-)

The patch below fixes this:

diff --git a/xev.c b/xev.c
index ea69234..de4e6e8 100644
--- a/xev.c
+++ b/xev.c
@@ -420,7 +420,7 @@ do_KeymapNotify(XEvent *eventp)
         if (i == 16 && !single_line) {
             output(InitialNewLine | Indent, "       ");
         }
-        output(0, "%-3u ", (unsigned int) e->key_vector[i]);
+        output(0, "%-3u ", (unsigned char) e->key_vector[i]);
     }
     output_new_line();
 }



More information about the xorg-devel mailing list