Hello!

I have noticed that rxvt 2.7.9, as well as the current CVS version have 
a problem with scrolling.  How to reproduce:

run rxvt
make sure you have ncurses 5.2 (I haven't tested other versions)
change to the Linux source directory (I'm using 2.4.20-rc1)
run "make menuconfig"
enter "ATA/IDE/MFM/RLL support" -> "IDE, ATA and ATAPI Block devices"
press down arrow and hold it until the scrolling stops
press up arrow and see strange things

When the cursor comes to the top, only three lines on the top of the 
window (I mean the area inside frame) are updated.

Similar effect can be observed with Midnight Commander (any recent
version) linked with ncurses 5.2.  When pressing up and down arrows in the
internal viewer, only one line on the screen is updated.

I tried and could not reproduce this problem with xterm 165 (XFree86
4.2.0), gnome-terminal 2.0.1 and konsole 1.1.3.  All of them set
TERM=xterm by default.

Using TERM=rxvt fixes the problem completely, but rxvt uses TERM=xterm by 
default, so it's supposed to work.

I could identify the difference in termcap that breaks rxvt.  The output 
of infocmp for rxvt has this:

smcup=\E7\E[?47h

and xterm has this:

smcup=\E[?1048h\E[?1047h

If I put "smcup=\E7\E[?47h" to the xterm definition and recompile it with 
tic, everything works in rxvt.  Removing "smcup" also helps.

Looking in command.c from rxvt sources, I see that "1048" is handled
separately from other sequences.  Maybe it's handled incorrectly?

Another interesting fact.  Just prepending \E7 to smcup helps.  This works 
fine:

smcup=\E7\E[?1048h\E[?1047h

I'd like to hear from the experts before I try to make a patch.

-- 
Regards,
Pavel Roskin

Reply via email to