[comp.unix.questions] Curses & Terminfo

FRAZIER%AFGLSC.SPAN@star.stanford.edu (02/06/88)

	I own an AT&T 3B1 running Unix SysV.  I have successfully compiled
a software package that is looking for a file called "/usr/lib/terminfo."
I contacted the author of the program in question and he said that the
only SYSV machine he had access to had the /usr/lib/terminfo file and as
far as he knew,  every SYSV had that file.  I have used SYSV's (other than
my own) and I have never seen this file.  Does this file actually exist 
and if so,  is there any chance someone could send me a copy of it.
(Providing it's not Huge.)  If not,  can someone tell me what this file
does and provide some suggestions as to how to avoid losing?  I'd
appreciate any help I can get..

					Thanks in advance

					Frazier%afgl.span@star.stanford.edu
						or
					swf@mc.lcs.mit.edu

lenny@icus.UUCP (Lenny Tropiano) (02/07/88)

In article <11664@brl-adm.ARPA> FRAZIER%AFGLSC.SPAN@star.stanford.edu writes:
|>
|>	I own an AT&T 3B1 running Unix SysV.  I have successfully compiled
|>a software package that is looking for a file called "/usr/lib/terminfo."
|>I contacted the author of the program in question and he said that the
|>only SYSV machine he had access to had the /usr/lib/terminfo file and as
|>far as he knew,  every SYSV had that file.  I have used SYSV's (other than
|>my own) and I have never seen this file.  Does this file actually exist 
|>and if so,  is there any chance someone could send me a copy of it.
|>(Providing it's not Huge.)  If not,  can someone tell me what this file
|>does and provide some suggestions as to how to avoid losing?  I'd
|>appreciate any help I can get..
|>

No!  Don't send a copy ... You should have this included with your
Operating System diskettes.   It is on a separate diskette and needs
to be installed separately (providing you are running release that the
terminfo stuff was introduced, 3.0 or higher I believe)  The diskette
should be labelled:

System Software   Version 3.51     (or 3.0, or 3.5)
Curses/Terminfo End User Package Disk

Install this diskette using the "install" login and Software Setup
off the Administration windows.

Now what does this file actually do? ... Well, in fact it isn't
really a file, it's a directory that contains more directories:

$ ls -CF /usr/lib/terminfo
./	2/	5/	9/	S/	c/	h/	o/	s/	v/
../	3/	6/	A/	a/	d/	i/	p/	t/	w/
1/	4/	7/	P/	b/	f/	l/	r/	u/

Each directory represents the first letter of the terminal you are using,
for example, vt100 would be in the "v" directory:

$ ls -CF /usr/lib/terminfo/v
./		vt100-am 	vt100-nav 	vt100-s-top 	vt100-w-nam 
../		vt100-bot-s 	vt100-nav-w 	vt100-top-s 	vt100-w-nav 
viewpoint 	vt100-nam 	vt100-s 	vt100-w 	vt220 
vt100 		vt100-nam-w 	vt100-s-bot 	vt100-w-am 	vt52 

These are compiled "terminfo" entries (see terminfo(4) in the AT&T UNIX PC
User's manual Volume I) files that CURSES uses to determine terminal
specific characteristics (ie, how to cursor position, etc..)  These files
can be decoded into their ASCII representation using "infocmp" ...

							-Lenny
-- 
============================ US MAIL:   Lenny Tropiano, ICUS Computer Group
 IIIII   CCC   U   U   SSSS             PO Box 1
   I    C   C  U   U  S                 Islip Terrace, New York  11752
   I    C      U   U   SSS   PHONE:     (516) 968-8576 [H] (516) 582-5525 [W] 
   I    C   C  U   U      S  AT&T MAIL: ...attmail!icus!lenny  TELEX: 154232428
 IIIII   CCC    UUU   SSSS   UUCP:
============================    ...{uunet!godfre, harvard!talcott}!\
                   ...{ihnp4, boulder, mtune, bc-cis, ptsfa, sbcs}! >icus!lenny 
"Usenet the final frontier"        ...{cmcl2!phri, hoptoad}!dasys1!/

russ@llama.rtech.UUCP (Russ Spence) (02/08/88)

In article <11664@brl-adm.ARPA> FRAZIER%AFGLSC.SPAN@star.stanford.edu writes:
>
>	I own an AT&T 3B1 running Unix SysV.  I have successfully compiled
>a software package that is looking for a file called "/usr/lib/terminfo."
>I contacted the author of the program in question and he said that the
>only SYSV machine he had access to had the /usr/lib/terminfo file and as
>far as he knew,  every SYSV had that file.  I have used SYSV's (other than
>my own) and I have never seen this file.  Does this file actually exist 
>and if so,  is there any chance someone could send me a copy of it.
>(Providing it's not Huge.)  If not,  can someone tell me what this file
>does and provide some suggestions as to how to avoid losing?  I'd
>appreciate any help I can get..

	/usr/lib/terminfo isn't a file, it is a directory.  Each
	terminal's terminfo entry is in a separate file, whose name
	is the name of the terminal.  These files reside in directory
	/usr/lib/terminfo/? where '?' is the first letter of the name
	of the terminal.  For example, the terminfo description of a
	vt100 is in file /usr/lib/terminfo/v/vt100.  The terminfo files
	come from a source file that has been "compiled", so the terminfo
	files are in a binary format (i.e. you can't just cat them).

	On the 3B's, curses uses terminfo. But, other implementations of
	SYSV by other vendors may still use termcap.  On the other 3B's
	(I'm not too familiar with the 3B1), the terminfo directory is
	part of the standard software.

--
Russell Spence    Relational Technology Inc.   {sun,mtxinu,ihnp4}!rtech!russ

Then you'll... never hear... surf music... again.

cjc@ulysses.homer.nj.att.com (Chris Calabrese[rs]) (02/09/88)

In article <1686@rtech.UUCP>, russ@llama.UUCP writes:
> 
> 	/usr/lib/terminfo isn't a file, it is a directory.  Each
> 	terminal's terminfo entry is in a separate file, whose name
> 	is the name of the terminal.  These files reside in directory
> 	/usr/lib/terminfo/? where '?' is the first letter of the name
> 	of the terminal.  For example, the terminfo description of a
> 	vt100 is in file /usr/lib/terminfo/v/vt100.  The terminfo files
> 	come from a source file that has been "compiled", so the terminfo
> 	files are in a binary format (i.e. you can't just cat them).
> 
> 	On the 3B's, curses uses terminfo. But, other implementations of
> 	SYSV by other vendors may still use termcap.  On the other 3B's
> 	(I'm not too familiar with the 3B1), the terminfo directory is
> 	part of the standard software.

On my 7300, (3b1 with 20meg disk), the terminfo came with the
system software, but it was on a seperate disk from the rest of
the system files, so it would be easy for someone who didn't know
what it was to not load it.

Also, the curses which is on the system software (foundation set
for AT&Ters) does not use terminfo, but there is a terminfo-ing
curses which comes as a seperate disk with the development set.

BTW, this is with release 3.5.

	Chris Calabrese
	AT&T Bell Labs
	ulysses!cjc

eao@anumb.UUCP (e.a.olson) (02/09/88)

In article <1686@rtech.UUCP> russ@llama.UUCP (Russ Spence) writes:
>In article <11664@brl-adm.ARPA> FRAZIER%AFGLSC.SPAN@star.stanford.edu writes:
>>
>>	I own an AT&T 3B1 running Unix SysV.  I have successfully compiled
>>a software package that is looking for a file called "/usr/lib/terminfo."

    There are diskettes labelled 'Curses/Terminfo End-User package',
    'Curses/Terminfo Programmer's package' and 'Terminfo Database'
    that need to be installed.  

jc@minya.UUCP (John Chambers) (02/12/88)

> > 	/usr/lib/terminfo isn't a file, it is a directory.  Each
> > 	terminal's terminfo entry is in a separate file, whose name
> > 	is the name of the terminal.  ...
> 
> On my 7300, (3b1 with 20meg disk), the terminfo came with the
> system software, 

That happens here, too, and things like vi use terminfo.  It is
a lot faster, but there is a new problem introduced.  With the 
old termcap, you could just edit /etc/termcap to make an entry
for a new terminal.  With terminfo, the files are in some sort
of binary form (presumably a dump of some memory data structures
for speed of loading).  You can't edit these.

Presumably you must edit some ascii source and then run some
command to build the binary file, but I've been unable to find
any description of how to do it in the manuals.  This terminal
is sorta like a vt100, except it has more lines.  I'm using a
vt100 entry, which works, but there are those unused lines that
I'd like to use.  

Can anyone post a description of how one goes about cloning an
old terminfo entry and building a modified entry?

-- 
John Chambers <{adelie,ima,maynard,mit-eddie}!minya!{jc,root}> (617/484-6393)

slb@hudson.acc.virginia.edu (Sandy Bryant) (02/14/88)

In article <465@minya.UUCP> jc@minya.UUCP (John Chambers) writes:
>for a new terminal.  With terminfo, the files are in some sort
>of binary form (presumably a dump of some memory data structures
>for speed of loading).  You can't edit these.
>
>Presumably you must edit some ascii source and then run some
>command to build the binary file, but I've been unable to find
>any description of how to do it in the manuals.  This terminal
>is sorta like a vt100, except it has more lines.  I'm using a
>vt100 entry, which works, but there are those unused lines that
>I'd like to use.  
>
>Can anyone post a description of how one goes about cloning an
>old terminfo entry and building a modified entry?

The files in /usr/lib/terminfo are the output of a terminfo compiler
called "tic".  The compiler should have a man page in section 1.
For an explanation of how to code a source file for tic, see the 
man page in section 4 for terminfo.  There may also be some documentation
in a manual for curses, depending on what sort of unix package you
have.  I seem to recall some sort of program that purported to 
translate termcaps into terminfos, but it never did a complete job,
and you always ended up going through the termcap entry by hand.
If you have source for your vt100 terminfo entry, start from there. 
Otherwise get a vt100 termcap entry and use the terminfo(4) page to 
translate and then play around with that.

sandy
slb@virginia

cjc@ulysses.homer.nj.att.com (Chris Calabrese[rs]) (02/16/88)

In article <465@minya.UUCP>, jc@minya.UUCP (John Chambers) writes:
> 
> Presumably you must edit some ascii source and then run some
> command to build the binary file, but I've been unable to find
> any description of how to do it in the manuals.  This terminal
> is sorta like a vt100, except it has more lines.  I'm using a
> vt100 entry, which works, but there are those unused lines that
> I'd like to use.  

The command you're talking about is called tic(1M), or
terminfo compiler.  Also take a look at captoinfo(1M) which converts
from termcap entries to terminfo entries, and at infocmp(1M), which prints
out the ascii version of the compiled terminfo entries.

	Chris Calabrese
	AT&T Bell Laboratories
	ulysses!cjc

joel@intelisc.UUCP (Joel Clark) (02/17/88)

In article <249@hudson.acc.virginia.edu> slb@virginia.edu (Sandy Bryant) writes:
>In article <465@minya.UUCP> jc@minya.UUCP (John Chambers) writes:
>>for a new terminal.  With terminfo, the files are in some sort
>>of binary form (presumably a dump of some memory data structures
>>for speed of loading).  You can't edit these.
>>
>The files in /usr/lib/terminfo are the output of a terminfo compiler
>called "tic".  The compiler should have a man page in section 1.
>
>  I seem to recall some sort of program that purported to 
>translate termcaps into terminfos, but it never did a complete job,
>and you always ended up going through the termcap entry by hand.
>
>sandy
>slb@virginia

The translator is called `captoinfo`.  I've never used it.  Also if possible 
interest is `infocmp`, to look at the terminfo binary files.

Joel Clark
joel@intelisc.com
{tektronix}!ogcvax!intelisc!joel

The Secretary will disavow any knowledge of my actions.

bae@ati.tis.llnl.gov (Hwa Jin Bae) (02/21/88)

In article <235@intelisc.UUCP> joel@intelisc.UUCP (Joel Clark) writes:
>The translator is called `captoinfo`.  I've never used it.  Also if possible 
>interest is `infocmp`, to look at the terminfo binary files.

Converting termcap to terminfo - use captoinfo
Converting terminfo to termcap - use infocmp -Cr

infocmp -Cr will not know how to translate some of the more advanced
terminfo parameterized strings functions.  You will get some error
string telling you to hand translate those to termcap, which is not
always easy (or possible).
Hwa Jin Bae
Control Data Corp.     bae@{ati,aftac}.tis.llnl.gov        (Internet)
4234 Hacienda Drive    {ames,ihnp4,lll-crg}!lll-tis!bae    (UUCP)
Pleasanton, CA 94566   hbae@plseca                         (smail)

bts@sas.UUCP (Brian T. Schellenberger) (02/21/88)

In article <465@minya.UUCP> jc@minya.UUCP (John Chambers) writes:
|is sorta like a vt100, except it has more lines.  I'm using a
|vt100 entry, which works, but there are those unused lines 

On terminfo systems (at least v5), you can simply set the environment
variable LINES and COLUMNS to make this now-common transformation.  I 
set:

setenv TERM vt100
setenv LINES 47

Form my vt100-emulator on my Amiga, and it works great.  (This is being used
on an HP Unix system, but I am told that it is a standard sysV feature.)
-- 
                                                         --Brian.
(Brian T. Schellenberger)				 ...!mcnc!rti!sas!bts

DISCLAIMER:  Whereas Brian Schellenberger (hereinafter "the party of the first