[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Annoying behavior in X (broken curses?)



On Tue, Feb 24, 1998 at 11:14:14AM -0500, Brian Mays wrote:

> > The same thing happens with both TERM=xterm and TERM=rxvt, but only in
> > an rxvt.  Running xterm, both terminal types do not have the screen
> > messups.
> 
> > This is due to a new ncurses, a new terminfo, or a new rxvt.
> > Unfortunately I upgraded to hamm all at once.
> 
> I have tested this on hamm's components as of 23 February.
> 
> How thoroughly did you test this?  For example, did you do the following in
> rxvt?
[...]

Hey, look at that.  It looks like we have two _different_ display problems!

The more serious problem is the one you've identified.  Here's how I can
replicate it on my system, in either an xterm or rxvt:

		export TERM=rxvt
		less /etc/profile
		joe

The new joe comes up consistently, displaying the contents of my
/etc/profile.  If TERM=xterm, the problem is gone in both rxvt and xterm.

Interestingly, though, I can't make less by itself display any obvious
symptoms of this problem.  For example, this works fine:

		export TERM=rxvt
		less /var/log/messages
		less /etc/profile

Your explanation of the difference (missing ESC[2J) makes perfect sense. 
Now, what is the correct solution?  It seems rather ugly to me that the
screen-switch code should need a clear-screen code included: what if I want
to switch back and forth without redrawing? (sounds somewhat pointless, but
still) Maybe ncurses / joe / the guilty parties should be clearing the
screen themselves after a switch?

In either case, as xterm and rxvt behave identically in this respect, both
terminfo entries should match.  I'm just not sure which one is right.

Now, here's an example of the problem _I_ was noticing, which occurs only in
rxvt (not xterm) and whether TERM=xterm or TERM=rxvt, but not when
TERM=vt100.  This command:

		joe /etc/profile

prints the top line of the file (under the status bar) with the end-of-line
whitespace (from the first blank until column 80) in reverse colour.  CTRL-R
fixes this.

When run from 'mutt' the screen is even more confused, with the initial
status line in the middle of the screen somewhere.

I suspect this may be a problem with joe, which, if I remember correctly,
doesn't really use curses but tries to do termcap/terminfo by itself
instead.  My best guess, from the style of corruption, is it's not moving
the cursor to (0,0) manually like it should when switching screens.  Maybe
we need an ESC[H in the screen-switch terminfo entry also :)

Oh, while I'm complaining I suppose I should mention that 'minicom' displays
really strange characters for its borders when run with TERM=rxvt, but not
with TERM=xterm.  I thought it might might want a VGA font, but that doesn't
seem to help.

Don't worry, I'll even start fixing some of this stuff myself if it lasts
too much longer.

Have fun,

Avery


--
TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to
debian-devel-request@lists.debian.org . 
Trouble?  e-mail to templin@bucknell.edu .


Reply to: