[pypy-commit] cffi demo-cleanup: fix one demo for verify -> set_source, compile
mattip
noreply at buildbot.pypy.org
Tue Nov 24 12:31:41 EST 2015
Author: mattip <matti.picus at gmail.com>
Branch: demo-cleanup
Changeset: r2435:a8a0693b9953
Date: 2015-11-24 19:29 +0200
http://bitbucket.org/cffi/cffi/changeset/a8a0693b9953/
Log: fix one demo for verify -> set_source, compile
diff --git a/demo/xclient.py b/demo/xclient.py
--- a/demo/xclient.py
+++ b/demo/xclient.py
@@ -1,40 +1,48 @@
-from cffi import FFI
+import sys
+sys.path.append('.')
+try:
+ import _xclient
+except ImportError:
+ from cffi import FFI
+ _ffi = FFI()
+ _ffi.cdef("""
-ffi = FFI()
-ffi.cdef("""
+ typedef ... Display;
+ typedef struct { ...; } Window;
-typedef ... Display;
-typedef struct { ...; } Window;
+ typedef struct { int type; ...; } XEvent;
-typedef struct { int type; ...; } XEvent;
+ Display *XOpenDisplay(char *display_name);
+ Window DefaultRootWindow(Display *display);
+ int XMapRaised(Display *display, Window w);
+ Window XCreateSimpleWindow(Display *display, Window parent, int x, int y,
+ unsigned int width, unsigned int height,
+ unsigned int border_width, unsigned long border,
+ unsigned long background);
+ int XNextEvent(Display *display, XEvent *event_return);
+ """)
-Display *XOpenDisplay(char *display_name);
-Window DefaultRootWindow(Display *display);
-int XMapRaised(Display *display, Window w);
-Window XCreateSimpleWindow(Display *display, Window parent, int x, int y,
- unsigned int width, unsigned int height,
- unsigned int border_width, unsigned long border,
- unsigned long background);
-int XNextEvent(Display *display, XEvent *event_return);
-""")
-lib = ffi.verify("""
-#include <X11/Xlib.h>
-""", libraries=['X11'])
+ _ffi.set_source('_xclient', """
+ #include <X11/Xlib.h>
+ """, libraries=['X11'])
+ _ffi.compile()
+ import _xclient
-globals().update(lib.__dict__)
+ffi = _xclient.ffi
+lib = _xclient.lib
class XError(Exception):
pass
def main():
- display = XOpenDisplay(ffi.NULL)
+ display = lib.XOpenDisplay(ffi.NULL)
if display == ffi.NULL:
raise XError("cannot open display")
- w = XCreateSimpleWindow(display, DefaultRootWindow(display),
+ w = lib.XCreateSimpleWindow(display, lib.DefaultRootWindow(display),
10, 10, 500, 350, 0, 0, 0)
- XMapRaised(display, w)
+ lib.XMapRaised(display, w)
event = ffi.new("XEvent *")
- XNextEvent(display, event)
+ lib.XNextEvent(display, event)
if __name__ == '__main__':
main()
More information about the pypy-commit
mailing list