On Fri, Aug 01, 2025 at 06:29:43PM -0500, Parzival Wolfram wrote:
Are terminfo definitions still being added for/from ancient Unix flavors?
I'm running Solaris 7 i86pc (i486-pc-solaris2.7) and the "AT386" terminfo
file, defining the textmode shell on the physical machine, is not present as
of ncurses-6.5 (along with several other files.) Would these be appropriate
to add to ncurses, either directly from Solaris or remade based on the
infocmp output? infocmp and toe do seem to parse them, both on the Solaris
box and on a modern Linux machine.
hmm - I hadn't exactly overlooked that, so much as thinking it was out of
scope. Here's what I think you're talking about, from a 1996 file from SCO:
--------------------------------------------------------------------------------
# Intel AT/386 for color card with monochrome display
#
AT386-M|at386-m|386AT-M|386at-m|at/386 console,
am, bw, eo, xon, xt,
cols#80, lines#25,
acsc=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~,
bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[2J\E[H,
cr=\r, cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB,
cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
cup=\E[%i%p1%02d;%p2%02dH, cuu=\E[%p1%dA, cuu1=\E[A,
dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[1M,
ed=\E[J, el=\E[K, flash=^G, home=\E[H, ht=\t,
ich=\E[%p1%d@, ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L,
ind=\E[S, indn=\E[%P1%dS, invis=\E[9m, is2=\E[0;10;38m,
kbs=\b, kcbt=^], kclr=\E[2J, kcub1=\E[D, kcud1=\E[B,
kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kend=\E[Y,
kf1=\EOP, kf10=\EOY, kf11=\EOZ, kf12=\EOA, kf2=\EOQ,
kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV,
kf8=\EOW, kf9=\EOX, khome=\E[H, kich1=\E[@, knp=\E[U,
kpp=\E[V, krmir=\E0, rev=\E[7m, rin=\E[S,
rmacs=\E[10m, rmso=\E[m, rmul=\E[m,
sgr=\E[10m\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;%?%p9%t;12%;%?%p7%t;9%;m,
sgr0=\E[0;10m, smacs=\E[12m, smso=\E[7m, smul=\E[4m,
#
# AT&T 386 color console
#
AT386|at386|386AT|386at|at/386 console,
colors#8, ncv#3, pairs#64,
is2=\E[0;10;39m,
op=\E[0m,
setb=\E[%?%p1%{0}%=%t40m
%e%p1%{1}%=%t44m
%e%p1%{2}%=%t42m
%e%p1%{3}%=%t46m
%e%p1%{4}%=%t41m
%e%p1%{5}%=%t45m
%e%p1%{6}%=%t43m
%e%p1%{7}%=%t47m%;,
setf=\E[%?%p1%{0}%=%t30m
%e%p1%{1}%=%t34m
%e%p1%{2}%=%t32m
%e%p1%{3}%=%t36m
%e%p1%{4}%=%t31m
%e%p1%{5}%=%t35m
%e%p1%{6}%=%t33m
%e%p1%{6}%=%t33m
%e%p1%{7}%=%t37m%;,
use=at386-m,
--------------------------------------------------------------------------------
Mostly I'm interested in things that can be validated.
https://invisible-island.net/ncurses/ncurses.faq.html#dbupdate
It's possible that you have found an overlooked terminal description
which is
(a) supported by a (working) terminal emulator and
(b) you can find a manual to cross-check the behavior
But I see some problems to investigate, e.g., indn/rin are using "%P1" for
one ("%p1" is expected), and omitting the parameter in the other. A later
file from Solaris fixes the "%P1" typo, but still doesn't provide a plausible
value for rin.
I'd actually expect rin to be as in ecma+index, but might be persuaded
otherwise, given a detailed manual:
# ECMA-48 does not include the VT100 indexing and scroll-margins. It has its
# own variation.
ecma+index|ECMA-48 scroll up/down,
indn=\E[%p1%dS, rin=\E[%p1%dT,
...bitsavers doesn't appear to have any useful AT&T terminal manuals.
Testing the machine's an option (though getting tack to run on Solaris 7
might be challenging).
--------------------------------------------------------------------------------
tic6: sorting by terminfo name order
tic6: width = 60, tversion = 0, outform = 0
"/tmp/at386.ti", line 3, terminal 'AT386-M': indn uses 0 parameters, expected 1
"/tmp/at386.ti", line 3, terminal 'AT386-M': rin uses 0 parameters, expected 1
"/tmp/at386.ti", line 3, terminal 'AT386-M': checking sgr(none) "\e[10m\e[0m"
compare to "\e[0;10m"
unmatched "10m"
"/tmp/at386.ti", line 3, terminal 'AT386-M': exit_attribute_mode differs from
sgr(0)
exit_attribute_mode="\e[0;10m"
sgr(0)="\e[10m\e[0m"
"/tmp/at386.ti", line 3, terminal 'AT386-M': exit_standout_mode matches
exit_attribute_mode
"/tmp/at386.ti", line 3, terminal 'AT386-M': exit_underline_mode matches
exit_attribute_mode
"/tmp/at386.ti", line 27, terminal 'AT386': indn uses 0 parameters, expected 1
"/tmp/at386.ti", line 27, terminal 'AT386': rin uses 0 parameters, expected 1
"/tmp/at386.ti", line 27, terminal 'AT386': checking sgr(none) "\e[10m\e[0m"
compare to "\e[0;10m"
unmatched "10m"
"/tmp/at386.ti", line 27, terminal 'AT386': exit_attribute_mode differs from
sgr(0)
exit_attribute_mode="\e[0;10m"
sgr(0)="\e[10m\e[0m"
"/tmp/at386.ti", line 27, terminal 'AT386': exit_standout_mode matches
exit_attribute_mode
"/tmp/at386.ti", line 27, terminal 'AT386': exit_underline_mode matches
exit_attribute_mode