Michael Hudson wrote:
> Georg Brandl <[EMAIL PROTECTED]> writes:
> 
>> Michael Hudson wrote:
>>> Georg Brandl <[EMAIL PROTECTED]> writes:
>>> 
>>>> The call to curses.setupterm() leaves my terminal in a bad state.
>>> 
>>> Hmm.
>>> 
>>>> The reset program outputs:
>>>> Erase set to delete.
>>>> Kill set to control-U (^U).
>>>> Interrupt set to control-C (^C).
>>> 
>>> It always says that :) (unless you've messed with stty, I guess)
>>
>> Well, when I do a reset without meddling with the terminal, it says nothing,
>> at least on my box.
> 
> Oh.  Maybe I'm out of date.
> 
>> And, there's more: Ctrl+D doesn't work, Ctrl+C doesn't work.
> 
> Right, so it definitely sounds like the terminal is in raw mode.
> 
>>>> Doesn't the setupterm() have to be paired with something like 
>>>> shutdownterm()?
>>> 
>>> Not as far as my memory of curses goes.  From the man page:
>>> 
>>>        The setupterm routine reads in the terminfo database,
>>>        initializing the terminfo structures, but does not set up the
>>>        output virtualization structures used by curses.
>>> 
>>> What platform are you on?
>>
>> Linux 2.6, ncurses 5.5, TERM=xterm.
> 
> Well, this still has the faint whiff of impossibility about it.  Are
> you sure it's setupterm() that's doing the damage?  Can you reproduce
> interactively?

Yep.
Alone, the setupterm call [curses.setupterm(sys.__stdout__.fileno())] does
nothing remarkable, but when it is done inside of curses.initscr() / 
curses.endwin()
the terminal is not restored properly.

If setupterm() is to be tested, I think it should be executed before initscr().

regards,
Georg








_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to