From: Andrew M. Kuchling Date: Sat, 23 Feb 2008 15:49:35 +0000 (+0000) Subject: #1119331: ncurses will just call exit() if the terminal name isn't found. X-Git-Tag: v2.6a1~97 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=322349e31b3c1472543428382b84a32d2fc2dfc7;p=python #1119331: ncurses will just call exit() if the terminal name isn't found. Call setupterm() first so that we get a Python exception instead of just existing. --- diff --git a/Lib/curses/__init__.py b/Lib/curses/__init__.py index aba540b70e..c3f2f25c30 100644 --- a/Lib/curses/__init__.py +++ b/Lib/curses/__init__.py @@ -14,6 +14,7 @@ __revision__ = "$Id$" from _curses import * from curses.wrapper import wrapper +import os as _os # Some constants, most notably the ACS_* ones, are only added to the C # _curses module's dictionary after initscr() is called. (Some @@ -25,6 +26,9 @@ from curses.wrapper import wrapper def initscr(): import _curses, curses + # we call setupterm() here because it raises an error + # instead of calling exit() in error cases. + setupterm(term=_os.environ.get("TERM", "unknown")) stdscr = _curses.initscr() for key, value in _curses.__dict__.items(): if key[0:4] == 'ACS_' or key in ('LINES', 'COLS'):