STINNER Victor added the comment:

The following example returns immediatly, whereas I expected it to block. So I 
consider that ungetch(-1) should fail, but I may be wrong.
---
import curses

def test_screen(screen):
    screen.nodelay(True)
    key = screen.getch()
    screen.nodelay(False)
    curses.ungetch(key)

    screen.getch()

curses.wrapper(test_screen)
---

key is -1, I don't get an OverflowError. The Python implementation of ungetch() 
casts the Python int to a C "chtype" type, and check for underflow or overflow. 
On my Fedora 18, chtype is defined in ncurses.h as "unsigned long". My code 
checking for overflow doesn't detect the overflow for this specific case.

What is your platform (name and version)?

We should always have the same behaviour on any platform (always fail with an 
error, or always accept -1), so anyway there is a bug.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue16293>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to