[pypy-commit] cffi default: merge heads

arigo noreply at buildbot.pypy.org
Tue Oct 9 11:20:39 CEST 2012


Author: Armin Rigo <arigo at tunes.org>
Branch: 
Changeset: r991:ec097c369113
Date: 2012-10-09 11:20 +0200
http://bitbucket.org/cffi/cffi/changeset/ec097c369113/

Log:	merge heads

diff --git a/demo/_curses.py b/demo/_curses.py
--- a/demo/_curses.py
+++ b/demo/_curses.py
@@ -22,6 +22,11 @@
 
 int setupterm(char *term, int fildes, int *errret);
 
+int tigetflag(char *);
+int tigetnum(char *);
+char *tigetstr(char *);
+char *tparm (char *, ...);
+
 int cbreak(void);
 int nocbreak(void);
 int echo(void);
@@ -205,8 +210,17 @@
 
 initscr = Window
 
+_setupterm_called = False
 
-def setupterm(term=ffi.NULL, fd=-1):
+
+def _ensure_setupterm_called():
+    if not _setupterm_called:
+        raise error("must call (at least) setupterm() first")
+
+
+def setupterm(term=None, fd=-1):
+    if term is None:
+        term = ffi.NULL
     if fd < 0:
         import sys
         fd = sys.stdout.fileno()
@@ -219,6 +233,33 @@
         else:
             s = "setupterm: unknown error %d" % err[0]
         raise error(s)
+    global _setupterm_called
+    _setupterm_called = True
+
+
+def tigetflag(capname):
+    _ensure_setupterm_called()
+    return lib.tigetflag(capname)
+
+
+def tigetnum(capname):
+    _ensure_setupterm_called()
+    return lib.tigetnum(capname)
+
+
+def tigetstr(capname):
+    _ensure_setupterm_called()
+    out = lib.tigetstr(capname)
+    if out == ffi.NULL:
+        return None
+    return ffi.string(out)
+
+
+def tparm(name, *args):
+    _ensure_setupterm_called()
+    cargs = [ffi.cast("long", arg) for arg in args]
+    return ffi.string(lib.tparm(name, *cargs))
+
 
 def color_pair(n):
     return n << 8


More information about the pypy-commit mailing list