(My email client managed to only reply to one address in the email despite hitting Reply All - Thunderbird, why do you betray me?)

I do have a functioning Solaris 7 machine, as stated, that can build and run ncurses-6.5, and I've gone through the trouble of putting together patches to make it largely C98 compatible. (Support is incomplete, as I'm not able to get the leaked kernel sources to build, but pre-processors and gnulib can handle a lot of the missing functionality.) If you have anything that you need to run to test it, point out a tarball and I'll see what I can do.

Additionally, after scouring the aforementioned leaked kernel sources, this is actually NOT the "Intel AT/386 for color card with monochrome display" entry as listed, but instead an "AT&T 386 color console".

On 8/1/25 7:33 PM, Thomas Dickey wrote:
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


Reply via email to