summaryrefslogtreecommitdiffstats
path: root/include/XlibExtras.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/XlibExtras.h')
-rw-r--r--include/XlibExtras.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/include/XlibExtras.h b/include/XlibExtras.h
new file mode 100644
index 0000000..52fbeaa
--- /dev/null
+++ b/include/XlibExtras.h
@@ -0,0 +1,33 @@
+/* This file copied from the X11 package */
+
+/* -----------------------------------------------------------------------------
+ * Definitions for package `X11' which are visible in Haskell land.
+ * ---------------------------------------------------------------------------*
+ */
+
+#ifndef XLIBEXTRAS_H
+#define XLIBEXTRAS_H
+#include <stdlib.h>
+/* This doesn't always work, so we play safe below... */
+#define XUTIL_DEFINE_FUNCTIONS
+#include <X11/X.h>
+#include <X11/X.h>
+#include <X11/Xlib.h>
+#include <X11/Xatom.h>
+#include <X11/Xutil.h>
+/* Xutil.h overrides some functions with macros.
+ * In recent versions of X this can be turned off with
+ * #define XUTIL_DEFINE_FUNCTIONS
+ * before the #include, but this doesn't work with older versions.
+ * As a workaround, we undef the macros here. Note that this is only
+ * safe for functions with return type int.
+ */
+#undef XDestroyImage
+#undef XGetPixel
+#undef XPutPixel
+#undef XSubImage
+#undef XAddPixel
+#define XK_MISCELLANY
+#define XK_LATIN1
+#include <X11/keysymdef.h>
+#endif