hello Roy and Brett. As usual in these cases, there was a bit of noise
in the beginning
of this process while I figured out what was wrong and what I was doing wrong.
Here is my
current understanding of the situation:
1. By default, terminfo reads the TERMCAP environment variable and produces an
internal
representation of the terminal capabilities, which libcurses can parse and use.
that part
works fine.
2. Using the TERMCAP ENVIRONMENT works for most screen applications that use
libcurses, except
for lynx, which, after correcting for some capability errors in the TERMCAP
definition,
demonstrates the problem whereby cursor tracking doesn't work when select
pop-up menus are in
use.
3. The captoinfo program and the terminfo tree holding the terminfo
definitions for libncurses
is incompatible with the captoinfo program in the base distribution, so if one
wants to use
libncurses, one needs to have both a .terminfo directory in one's home
directory, as well as a
.terminfo.cdb file in one's home directory, in order to store the translated
capabilities for
each curses library. This works because, as I discovered by accident, our
libterminfo library
doesn't actually utilize the plain text .terminfo file it looks up even if it's
in the
appropriate format. In order for the libterminfo library to produce working
terminal
description, suitable for consumption by libcurses, the one in our base
distribution, it either
needs to read a .cdb file directly, or translate it on the fly from the TERMCAP
environment
variable.
4. When lynx is linked against the libncurses library and all of the terminal
capabilities are
properly presented to the libncurses library, it works fine, properly drawing
the screen and
presenting the cursor during all operations. this leads me to the conclusion
that we do have a
problem in the native libcurses library, and I suspect it has something to do
with the changes
to the getch.c file in the library, but I don't understand the internals of
curses enough to be
very helpful in this regard. If it helps, the same version of lynx, when
linked against the
libcurses from NetBSD-5.2 works fine.
5. As a further confusion, I tried using lynx inside of tmux under NetBSD-9.1,
but I got
screen drawing errors. This may have been due to the terminal description
issues I worked out
in 1 above, but I've not gone back to check again since I got lynx working with
libncurses
under window(1).
-thanks
-Brian