SUMMARY: Termcap entry for dtterm on SunOS 4.x

From: Greg Weingart (
Date: Thu May 07 1998 - 15:02:47 CDT

Here is my original post:


I am trying to create a termcap entry for CDE dtterm on a Sparc20
4.1.4. I have tried the following entry for dtterm in my termcap file
per Infodoc 13799:

dtterm|dtcde|dttermminal from cde:\

I have also tried using infocmp -C dtterm from an Ultra II and a sparc
20 running 2.5.1 with the following:

No matter which method I use, I get the following error message when
I start a new vi session:

dtterm: Unknown terminal type
I don't know what kind of terminal you are on - all I have is 'dtterm'.
[Using open mode]

Has anyone seen this problem?
Do I have to do anything else besides make the entry in the
I have already searched the CDE, Sun Managers, and Solaris 2 FAQ's,
along with SunSolve.

Many thanks to all who responded:
The following all correctly identified that Vi under SunOS 4.x uses
terminfo instead of termcap.

Patrick L. Nolan [pln@egret1.Stanford.EDU]
Frank Cusack []
Nick Wilhelm-Olsen
Lee A. Fedor
Casper Dik [casper@holland.Sun.COM]
Joel Lee []
Michael T. Sullivan

I have included Michael's reply as this is the course I chose to follow.
I have also included all other replies that offered alternative fixes.

Michael T. Sullivan

First of all, vi in SunOS 4.1.4 uses the terminfo files, not
Therefore, you can just copy the file /usr/share/lib/terminfo/d/dtterm
from a Solaris 2 system to the same location on your SunOS 4.1.4 system,
and it should work fine. Terminfo files are supposed to be binary
between all systems.

If you don't want to install the file under /usr/share/lib/terminfo,
you can instead create another terminfo directory hierarchy and set
the TERMINFO environment variable to reference it, e.g.:

 export TERMINFO
 mkdir -p $TERMINFO/d
 rcp some-solaris-2-system:/usr/share/lib/terminfo/d/dtterm $TERMINFO/d

Michael T. Sullivan         | email:
TradeLink L.L.C.            | voice: +1 312 408 2599
175 W. Jackson, Suite A1235 | fax:   +1 312 939 2531
Chicago, Illinois 60604 USA |
Dave Brent []

Try giving your termcap entry a 2 letter code as the first thing. It shouldn't conflict with any other 2 letter codes used in the termcap file. For example,

CD|dtterm|dtcde|dttermminal from cde:\

Dave Brent, UBC Computer Science ----------------------------------------------- Brion Leary []


Additional things to check -

(1) Do you have a TERMCAP environment variable defined (see TERMCAP(5)) ?

(2) Is vi /usr/ucb/vi or is it a wrapper program which may be setting TERMCAP?

(3) recheck /etc/termcap to be sure the entry is correct, also check the precedding entry to be sure it is terminated properly

I use dtterm's on 4.1.3 and all I needed to do was update /etc/termcap - I used the infocmp route. ----------------------------------------------

Try setting the following environment variables:

TERM=dtterm TERMCAP=/usr/local/lib/terminfo/dtterm.cap TERMINFO=/usr/local/lib/terminfo

The "dtterm.cap" file should hold only the dtterm TERMCAP entry. This is similar to the way I do it under Solaris. Substitute whatever directory you use to hold terminfo entries. Karl Vogel ASC/YCOA, Wright-Patterson AFB, OH 45433, USA ------------------------------------------------------------------------

the quick and dirty solution is to do

set term = vt220

the vt220 definitions seem close enough to dtterm that I've never noticed any problems using vi with it.


* Dave Mitchell, Fretwell-Downing Data Systems: * Tel: +44 114 281 6113. The usual disclaimers.... ------------------------------------------------------

I'd rather have root canal surgery than mess with termcap. And I'm cheap ;) All I do is add the following lines to a .cshrc/.tcshrc (modify for the shell of your heart's desire):

-----------------------------------CUT HERE----------------------------------- if ( $?interactive_shell && $shell =~ /bin/csh ) then set noglob if (x$TERM == xnetwork | x$TERM == xunknown | x$TERM == x | x$TERM == vt320)\ then eval `tset -srIQ -e^H -k^? ?vt220` else if (x$TERM == xdtterm | x$term == xvt320) then eval `tset -srIQ -e^H -k^? xterm` else eval `tset -srIQ -e^H -k^?` endif unset noglob endif -----------------------------------CUT HERE-----------------------------------

Not pretty, but does the trick. Just tell the system ``it's a xterm -- trust me''. -- later, Stephen

Fraunhofer-IGD | mailto: Stephen Wolthusen | Rundeturmstr. 6 | 64283 Darmstadt, GERMANY | | | Tel +49 (0) 6151 155 539 (Bs.) | Fax: +49 (0) 6151 155 499 (Bs.) +49 (0) 172 916 9883 | +49 (0) 6245 905 366 (Pri.) +49 (0) 6245 6952 (Pri.) | ======================================================================== =========

Thanks again to all who responded. It's great to see the vitality of this group still persists.

Greg Weingart Network Systems Administrator Ramtron International Inc. Co. Springs, CO USA 80921

This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:12:39 CDT