summaryrefslogtreecommitdiff
path: root/Lib/curses
diff options
context:
space:
mode:
authorAndrew M. Kuchling <amk@amk.ca>2000-06-26 23:54:03 +0000
committerAndrew M. Kuchling <amk@amk.ca>2000-06-26 23:54:03 +0000
commit166bff52496bfb47c5a3a03585bd10fb449b8d77 (patch)
tree59c9d06eddf65442c89cd72d35af7990068d24b0 /Lib/curses
parent5d302fd9c70bd00f820b64b9774c00dbae2516d1 (diff)
downloadcpython-166bff52496bfb47c5a3a03585bd10fb449b8d77.tar.gz
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 8e8f7d8bb7..1808ee61bb 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