#include <string.h>
#include "xcb_event.h"
-#include "../xcb-util-common.h"
-void
-xcb_event_handlers_init(xcb_connection_t *c, xcb_event_handlers_t *evenths)
-{
- memset(evenths, 0, sizeof(xcb_event_handlers_t));
- evenths->c = c;
-}
-
-xcb_connection_t *
-xcb_event_get_xcb_connection(xcb_event_handlers_t *evenths)
-{
- return evenths->c;
-}
-
-static xcb_event_handler_t *
-get_event_handler(xcb_event_handlers_t *evenths, int event)
-{
- assert(event < 256);
- event &= XCB_EVENT_RESPONSE_TYPE_MASK;
- assert(event >= 2);
- return &evenths->event[event - 2];
-}
-
-static xcb_event_handler_t *
-get_error_handler(xcb_event_handlers_t *evenths, int error)
-{
- assert(error >= 0 && error < 256);
- return &evenths->error[error];
-}
-
-int
-xcb_event_handle(xcb_event_handlers_t *evenths, xcb_generic_event_t *event)
-{
- xcb_event_handler_t *eventh = 0;
- assert(event->response_type != 1);
-
- if(event->response_type == 0)
- eventh = get_error_handler(evenths, ((xcb_generic_error_t *) event)->error_code);
- else
- eventh = get_event_handler(evenths, event->response_type);
-
- if(eventh->handler)
- return eventh->handler(eventh->data, evenths->c, event);
- return 0;
-}
-
-void
-xcb_event_wait_for_event_loop(xcb_event_handlers_t *evenths)
-{
- xcb_generic_event_t *event;
- while((event = xcb_wait_for_event(evenths->c)))
- {
- xcb_event_handle(evenths, event);
- free(event);
- }
-}
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
-void
-xcb_event_poll_for_event_loop(xcb_event_handlers_t *evenths)
-{
- xcb_generic_event_t *event;
- while ((event = xcb_poll_for_event(evenths->c)))
- {
- xcb_event_handle(evenths, event);
- free(event);
- }
-}
-
-static void
-set_handler(xcb_generic_event_handler_t handler, void *data, xcb_event_handler_t *place)
-{
- xcb_event_handler_t eventh = { handler, data };
- *place = eventh;
-}
-
-void
-xcb_event_set_handler(xcb_event_handlers_t *evenths, int event, xcb_generic_event_handler_t handler, void *data)
-{
- set_handler(handler, data, get_event_handler(evenths, event));
-}
-
-void
-xcb_event_set_error_handler(xcb_event_handlers_t *evenths, int error, xcb_generic_error_handler_t handler, void *data)
-{
- set_handler((xcb_generic_event_handler_t) handler, data, get_error_handler(evenths, error));
-}
+#define ssizeof(foo) (ssize_t)sizeof(foo)
+#define countof(foo) (ssizeof(foo) / ssizeof(foo[0]))
static const char *labelError[] =
{