summaryrefslogtreecommitdiffstats
path: root/Lib/curses
diff options
context:
space:
mode:
authorAndrew M. Kuchling <amk@amk.ca>2000-06-26 23:54:03 (GMT)
committerAndrew M. Kuchling <amk@amk.ca>2000-06-26 23:54:03 (GMT)
commit289d9d422707d4ae3ab00e658c262d6dd3f75963 (patch)
tree29ecb8f9fba0e5e4cc2b8a439f9b2fc3f2497d87 /Lib/curses
parent99a5621f3f2a1e2396aeb8a183c82905c02f829f (diff)
downloadcpython-289d9d422707d4ae3ab00e658c262d6dd3f75963.zip
cpython-289d9d422707d4ae3ab00e658c262d6dd3f75963.tar.gz
cpython-289d9d422707d4ae3ab00e658c262d6dd3f75963.tar.bz2
Add wrapper for initscr() to copy the ACS_ and LINES,COLS bindings
Diffstat (limited to 'Lib/curses')
-rw-r--r--Lib/curses/__init__.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/Lib/curses/__init__.py b/Lib/curses/__init__.py
index 8e8f7d8..1808ee6 100644
--- a/Lib/curses/__init__.py
+++ b/Lib/curses/__init__.py
@@ -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