Re: Python3 curses behavior
Sent from my android phone. On Feb 10, 2013 2:09 PM, Vlasov Vitaly vnig...@gmail.com wrote: суббота, 9 февраля 2013 г., 23:22:47 UTC+4 пользователь Terry Reedy написал: On 2/9/2013 6:23 AM, Vlasov Vitaly wrote: -- 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. I doubt this is a Python 2 or Python 3 problem; historically some terminal types curses supports could not fill the lower right-most character cell without causing an undesired scroll of the screen by one line. So portable curses programs avoid filling that spot with anything. -- http://mail.python.org/mailman/listinfo/python-list
Re: Python3 curses behavior
суббота, 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
Python3 curses behavior
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. This is my problem. Why? How to fix it? (If i will ignore exception, then last char will be displayed) Here simple example: http://pastebin.com/SjyMsHZB Thank You! -- http://mail.python.org/mailman/listinfo/python-list
Re: Python3 curses behavior
On Sat, Feb 9, 2013 at 10:23 PM, Vlasov Vitaly vnig...@gmail.com 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. This is my problem. Why? How to fix it? (If i will ignore exception, then last char will be displayed) Here simple example: http://pastebin.com/SjyMsHZB What exception is being raised? That's kinda the most important part here :) ChrisA -- http://mail.python.org/mailman/listinfo/python-list
Re: Python3 curses behavior
суббота, 9 февраля 2013 г., 15:28:51 UTC+4 пользователь Chris Angelico написал: On Sat, Feb 9, 2013 at 10:23 PM, Vlasov Vitaly vnig...@gmail.com 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. This is my problem. Why? How to fix it? (If i will ignore exception, then last char will be displayed) Here simple example: http://pastebin.com/SjyMsHZB What exception is being raised? That's kinda the most important part here :) ChrisA curses.error -- all curses-related exception Exception text: curses.error: 'addch() returned ERR' -- http://mail.python.org/mailman/listinfo/python-list
Re: Python3 curses behavior
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 -- http://mail.python.org/mailman/listinfo/python-list