replaced curses.wrapper by its code
This commit is contained in:
parent
cacb7563b3
commit
c55635b577
|
@ -26,7 +26,29 @@ def main(argv=None):
|
|||
|
||||
os.environ.setdefault("ESCDELAY", "25")
|
||||
|
||||
def start(stdscr):
|
||||
try:
|
||||
# Initialize curses
|
||||
stdscr = curses.initscr()
|
||||
|
||||
# Turn off echoing of keys, and enter cbreak mode,
|
||||
# where no buffering is performed on keyboard input
|
||||
curses.noecho()
|
||||
curses.cbreak()
|
||||
|
||||
# In keypad mode, escape sequences for special keys
|
||||
# (like the cursor keys) will be interpreted and
|
||||
# a special value like curses.KEY_LEFT will be returned
|
||||
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
|
||||
|
||||
display = Display(stdscr, characters, colours)
|
||||
client = Client(stdscr, display, name, connection, keybindings, logfile)
|
||||
try:
|
||||
|
@ -36,12 +58,16 @@ def main(argv=None):
|
|||
except Exception as e:
|
||||
# throw the execption outside ncurses
|
||||
# so the cleanup can happen first
|
||||
nonlocal error
|
||||
error = e
|
||||
nonlocal closeMessage
|
||||
closeMessage = client.closeMessage
|
||||
|
||||
curses.wrapper(start)
|
||||
finally:
|
||||
# Set everything back to normal
|
||||
if 'stdscr' in locals():
|
||||
stdscr.keypad(0)
|
||||
curses.echo()
|
||||
curses.nocbreak()
|
||||
curses.endwin()
|
||||
|
||||
|
||||
if error is not None:
|
||||
raise error
|
||||
|
|
|
@ -6,7 +6,6 @@ import json
|
|||
import os
|
||||
import os.path
|
||||
|
||||
from .start import main as clientmain
|
||||
from . import loaders
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue