This has been bugging me for some time. The problem is that if you
increase the number of lines in rxvt while a curses program is running
in the foreground, the saved cursor position is not updated. So when you
exit the program, the new shell prompt appears too high up in the
terminal, in the middle of the text that came before it. There is no
corresponding problem with decreasing the number of lines, because of

/* boundary check in case screen size changed between SAVE and RESTORE
*/
    MIN_IT(s->cur.row, r->TermWin.nrow - 1);
    MIN_IT(s->cur.col, r->TermWin.ncol - 1);

in rxvt_scr_cursor(). One extra line is therefore enough to do it (this
is against rxvt 2.7.8, screen.c v1.247):

--- screen.c~   Wed Nov 28 11:58:12 2001
+++ screen.c    Sat Jun 22 13:26:32 2002
@@ -315,6 +315,7 @@
            if (k > 0) {
                rxvt_scroll_text(r, 0, (int)nrow - 1, -k, 1);
                r->screen.cur.row += k;
+               r->screen.s_cur.row += k;
                r->TermWin.nscrolled -= k;
            }
 #ifdef DEBUG_STRICT

On another note, what are the plans for rxvt 2.8? It seems that
development of 2.7 has been going on for nearly 3 years now. I notice
that the website is also very badly out of date. I'd be happy to
volunteer to update it if the maintainers wish.

        Malcolm

Reply via email to