[Haskell-cafe] X11 package bug: XClientMessageEvent long data
Dylan Alex Simon
dylan-haskell at dylex.net
Wed Mar 16 05:10:59 CET 2011
Does anyone know the current maintenance status of the X11 package? I emailed
Spencer Janssen a number of months ago and never heard back. So, I'll put
this here in case any one else runs into it or can get it to the right place.
This is a proposed bug fix for a problem I ran into using xmonad client
messages to send remote commands on 64LP architectures (i.e., amd64), wherein
the C X11 library and Haskell's disagree about the size of client message
arguments.
Tue Nov 16 23:41:49 EST 2010 Dylan Simon <dylan at dylex.net>
* change XClientMessageEvent long data
The XClientMessageEvent.data.l field is actually a long, not an int, so it must
be interpreted as such, even though format is set to 32 in this case.
Ostensibly this is an Xlib bug, but it is unlikely to be fixed there.
diff -rN -u old-src/Graphics/X11/Xlib/Extras.hsc new-src/Graphics/X11/Xlib/Extras.hsc
--- old-src/Graphics/X11/Xlib/Extras.hsc 2011-03-15 22:40:39.687844812 -0400
+++ new-src/Graphics/X11/Xlib/Extras.hsc 2011-03-15 22:40:39.724522814 -0400
@@ -601,7 +601,7 @@
16 -> do a <- peekArray 10 datPtr
return $ map fromIntegral (a::[Word16])
32 -> do a <- peekArray 5 datPtr
- return $ map fromIntegral (a::[Word32])
+ return $ map fromIntegral (a::[CLong])
_ -> error "X11.Extras.clientMessage: illegal value"
return $ ClientMessageEvent
{ ev_event_type = type_
More information about the Haskell-Cafe
mailing list