Tweak curses.wrapper so it initializes colors if they are available.

This commit is contained in:
Eric S. Raymond 2000-08-09 21:11:07 +00:00
parent 46a4151674
commit 1ebd3f6c4b
3 changed files with 20 additions and 4 deletions

View File

@ -1300,8 +1300,9 @@ as its first argument, followed by any other arguments passed to
\function{wrapper()}. \function{wrapper()}.
\end{funcdesc} \end{funcdesc}
Before calling the hook function, \function{wrapper()} turns on Before calling the hook function, \function{wrapper()} turns on cbreak
cbreak mode, turns off echo, and enables the terminal keypad. On mode, turns off echo, enables the terminal keypad, and initializes
exit (whether normally or by exception) it restores cooked mode, colors if the terminal has color support. On exit (whether normally
turns on echo, and disables the terminal keypad. or by exception) it restores cooked mode, turns on echo, and disables
the terminal keypad.

View File

@ -32,6 +32,15 @@ def wrapper(func, *rest):
# a special value like curses.KEY_LEFT will be returned # a special value like curses.KEY_LEFT will be returned
stdscr.keypad(1) stdscr.keypad(1)
# Start color, too. Harmless if the terminal doesn't have
# color; user can test with has_color() later on. The try/catch
# works around a minor bit of over-conscientiousness in the curses
# module -- the error return from C start_color() is ignorable.
try:
curses.start_color()
except:
pass
res = apply(func, (stdscr,) + rest) res = apply(func, (stdscr,) + rest)
except: except:
# In the event of an error, restore the terminal # In the event of an error, restore the terminal

View File

@ -1014,6 +1014,12 @@ AC_SUBST(HAVE_GETHOSTBYNAME)
# checks for system services # checks for system services
# (none yet) # (none yet)
# Cope with the DB mess. If we detect libdba, assume it's a version 2
# or later DB and should be linked first (before the DB 1.xx stuff in glibc).
# Also define an appropriate symbol so we can conditionalize code in the
# dbmmodule; the API has changed since 1.xx.
AC_CHECK_LIB(dba, __db_mutex_lock)
# Linux requires this for correct f.p. operations # Linux requires this for correct f.p. operations
AC_CHECK_FUNC(__fpu_control, AC_CHECK_FUNC(__fpu_control,
[], [],