+#undef I3__FILE__
+#define I3__FILE__ "debug.c"
+/*
+ * vim:ts=4:sw=4:expandtab
+ *
+ * i3 - an improved dynamic tiling window manager
+ * © 2009 Michael Stapelberg and contributors (see also: LICENSE)
+ *
+ * debug.c: Debugging functions, especially FormatEvent, which prints unhandled
+ * events. This code is from xcb-util.
+ *
+ */
#include <stdio.h>
#include <xcb/xcb.h>
-/* Debug functions here, especially the FormatEvent-stuff, which prints unhandled events */
+#include "log.h"
static const char *labelError[] = {
"Success",
sendEvent = (e->response_type & 0x80) ? 1 : 0;
e->response_type &= ~0x80;
- seqnum = *((uint16_t *) e + 1);
+ seqnum = *((uint16_t *)e + 1);
- switch(e->response_type) {
- case 0:
- printf("Error %s on seqnum %d (%s).\n",
- labelError[*((uint8_t *) e + 1)],
- seqnum,
- labelRequest[*((uint8_t *) e + 10)]);
- break;
- default:
- printf("Event %s following seqnum %d%s.\n",
- labelEvent[e->response_type],
- seqnum,
- labelSendEvent[sendEvent]);
- break;
- case XCB_KEYMAP_NOTIFY:
- printf("Event %s%s.\n",
- labelEvent[e->response_type],
- labelSendEvent[sendEvent]);
- break;
+ switch (e->response_type) {
+ case 0:
+ DLOG("Error %s on seqnum %d (%s).\n",
+ labelError[*((uint8_t *)e + 1)],
+ seqnum,
+ labelRequest[*((uint8_t *)e + 10)]);
+ break;
+ default:
+ if (e->response_type > sizeof(labelEvent) / sizeof(char *))
+ break;
+ DLOG("Event %s following seqnum %d%s.\n",
+ labelEvent[e->response_type],
+ seqnum,
+ labelSendEvent[sendEvent]);
+ break;
+ case XCB_KEYMAP_NOTIFY:
+ DLOG("Event %s%s.\n",
+ labelEvent[e->response_type],
+ labelSendEvent[sendEvent]);
+ break;
}
fflush(stdout);
return 1;
}
-
-int handle_event(void *ignored, xcb_connection_t *c, xcb_generic_event_t *e) {
- return format_event(e);
-}