суббота, 9 февраля 2013 г., 23:22:47 UTC+4 пользователь Terry Reedy написал: > On 2/9/2013 6:23 AM, Vlasov Vitaly wrote: > > > Hello. > > > > > > I found strange behavior of curses module, that i can't understand. I > > > initialize screen with curses.initscr(), then i create subwin of > > > screen with screen.subwin(my_subwin_sizes). After that i fill subwin > > > with my_char in for-loop. On last char in last line subwin.addch() > > > raises exception. > > > > I have never used curses but I have used text screens. I suspect that > > addch moves the cursor to the position beyond where the character is > > added, but there is no such position. I remember having problems writing > > to the last char of a 24x80 screen without getting either a scroll or > > beep if scrolling was disabled. > > > > > This is my problem. Why? How to fix it? > > > > Perhaps this will help: > > window.leaveok(yes) > > If yes is 1, cursor is left where it is on update, instead of being at > > “cursor position.” This reduces cursor movement where possible. If > > possible the cursor will be made invisible. > > > > > (If i will ignore exception, then last char will be displayed) > > > > Otherwise, just catch the exception, as you already discovered. > > > > > Here simple example: http://pastebin.com/SjyMsHZB > > > > -- > > Terry Jan Reedy
Thank you. I tried everything in my test script. win.leaveok() - no effect curses.cur_vis() - no effect win.scrollok() - start newline and place cursor on it It's only one last option: on last line last char try/except with pass. -- http://mail.python.org/mailman/listinfo/python-list