NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: PR/30978 CVS commit: src/lib/libcurses
The following reply was made to PR lib/30978; it has been noted by GNATS.
From: Valery Ushakov <uwe%stderr.spb.ru@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc:
Subject: Re: PR/30978 CVS commit: src/lib/libcurses
Date: Sat, 6 Oct 2018 06:32:00 +0300
On Sat, Oct 06, 2018 at 04:19:43 +0300, Valery Ushakov wrote:
> As I expected the new curses is broken with TERM=sun. Emitting that
> character into the lower-right corner causes the line to wrap and,
> consequenly, the screen contents to scroll up, messing up the display.
IIRC the common hack^Wsolution for this is to use insertion, either
smir/rmir or ich1 (or ich).
E.g. the following will print "AZ" at the lower-right corner on both
TERM=vt100 and TERM=sun
tput clear
# this is intended to be in the lower right corner
# but emit it one column before
tput cup $(expr $LINES - 1) $(expr $COLUMNS - 2)
echo -n Z
sleep 5
# re-emit the character that was overwritten by the above
# shifting 'Z' to its target position at the lower right corner
tput cup $(expr $LINES - 1) $(expr $COLUMNS - 2)
tput smir # enter insert mode - nop is not present
tput ich1 # insert 1 character - nop is not present
echo -n A
tput rmir # end insert mode - nop is not present
tput cup 0 0
sleep 5
Presence of :xn:LP: in termcap just tells you that you can avoid this
song and dance and just write to the lower-right corner directly, so
it's a micro-optimization and if these capabilities are not present,
the display will still be correct at the cost of a few more bytes sent
to the terminal.
-uwe
Home |
Main Index |
Thread Index |
Old Index