]> granicus.if.org Git - python/commitdiff
Add wrapper for initscr() to copy the ACS_ and LINES,COLS bindings
authorAndrew M. Kuchling <amk@amk.ca>
Mon, 26 Jun 2000 23:54:03 +0000 (23:54 +0000)
committerAndrew M. Kuchling <amk@amk.ca>
Mon, 26 Jun 2000 23:54:03 +0000 (23:54 +0000)
Lib/curses/__init__.py

index 8e8f7d8bb7d84bfb3324b1ce48f7196e1b6d07d0..1808ee61bb257251d911a7486f08e09b6c4b5c54 100644 (file)
@@ -15,4 +15,20 @@ __revision__ = "$Id$"
 from _curses import *
 from curses.wrapper import wrapper
 
+# Some constants, most notably the ACS_* ones, are only added to the C
+# _curses module's dictionary after initscr() is called.  (Some
+# versions of SGI's curses don't define values for those constants
+# until initscr() has been called.)  This wrapper function calls the
+# underlying C initscr(), and then copies the constants from the
+# _curses module to the curses package's dictionary.  Don't do 'from
+# curses import *' if you'll be needing the ACS_* constants.
+
+def initscr():
+    import _curses, curses
+    stdscr = _curses.initscr()
+    for key, value in _curses.__dict__.items():
+        if key[0:4] == 'ACS_' or key in ('LINES', 'COLS'):
+            setattr(curses, key, value)
+    
+    return stdscr