[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Chicken-users] setting a callback in xlib
From: |
Eduardo Cavazos |
Subject: |
[Chicken-users] setting a callback in xlib |
Date: |
Sat, 07 Mar 2009 00:10:06 -0600 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.16) Gecko/20080716 SeaMonkey/1.1.11 |
Hello,
Xlib has a function 'XSetErrorHandler'. You pass a callback to it to
specify the new error handler. Here's the relevant code from 'Xlib.h':
----------------------------------------------------------------------
typedef int (*XErrorHandler) (
Display* /* display */,
XErrorEvent* /* error_event */
);
extern XErrorHandler XSetErrorHandler (
XErrorHandler /* handler */
);
----------------------------------------------------------------------
Here's how I'm defining 'XSetErrorHandler' on the Chicken side:
(define XSetErrorHandler
(foreign-safe-lambda c-pointer XSetErrorHandler
(function int (c-pointer c-pointer))))
And finally, a test error handler:
(define-external (xerrorhandler (c-pointer dpy) (c-pointer ev)) int
(display "Error handler called\n"))
If I trigger an X error, I get a pretty wacky error:
Error: bad argument count - received 134902918 but expected 2: #()
Anywho, do the definitions above look OK? Just wanted to make sure
before I debug further...
Thanks!
Ed
- [Chicken-users] setting a callback in xlib,
Eduardo Cavazos <=