[gnu.emacs.bug] Termcap support on vax

turner@uicsrd.csrd.uiuc.edu (Steve Turner) (10/05/89)

I recently updated our vax (4.3BSD) version of emacs from 18.49 to
18.55.  No big deal, I thought...  However, when some terminal types
(unusual ones - like vt100, sun, etc.) are set as the TERM environment
variable; and TERMCAP is not defined, or is the same rather than a
"true" termcap entry;  then emacs dies in a call to free()!  I have
tracked it down as far as I can to the 'free(buf.beg);' line in
tgetent() in termcap.c

Because /usr/lib/libtermcap.a does exist on our system (generic 4.3,
as far as I know), I tried changing m-vax.h to include the line:

#define LIBS_TERMCAP -ltermcap  /* inside #ifdef BSD, of course */

Which seems to have fixed the problem, by compiling temacs with
-ltermcap instead of termcap.o

Why is this not the default?  Am I asking for trouble on *other*
terminal types now?  How come nobody else has had this problem on one
of the most popular OS/machine combinations out there???

A dbx `where` at the point of error follows .signature
---------------------------------------------------------------------------
 Steve Turner (on the Si prairie  - UIUC CSRD)

UUCP:    {ihnp4,seismo,pur-ee,convex}!uiucdcs!uicsrd!turner
ARPANET: turner%uicsrd.csrd.uiuc.edu
CSNET:   turner%uicsrd@uiuc.csnet            *-)    Mutants for
BITNET:  turner@uicsrd.csrd.uiuc.edu                Nuclear Power!  (-%
___________________________________________________________________________
;-) dbx emacs-18.55.2
dbx version 3.21 of 6/5/86 16:40 (monet.Berkeley.EDU).
Type 'help' for help.
reading symbolic information ...
(dbx) run
can't write to process (address 0x3c06e)
(dbx) quit
12.9u 4.6s 1:59 14% 110+2691k 212+2io 10pf+0w
;-) dbx /nobackup/err
dbx version 3.21 of 6/5/86 16:40 (monet.Berkeley.EDU).
Type 'help' for help.
reading symbolic information ...
(dbx) run

Illegal instruction (reserved addressing fault) in kill at 0x36968
00036968  bcs	3695c
(dbx) where
kill(0x5a18, 0x4) at 0x36968
abort() at 0x361c4
$b132, line 558 in "malloc.c"
free(mem = "t:\\n^I:am:bs:co#80:li#24:cm=\E^Q%r%>\036\240%+\140%+\140:\\n^I:al=35\E^Z:dl=35\E^S:cd=10\E^X:ce=\E^O:cl=\E^\:\\n^I:up=\E^L:do=\E^K:nd=^P:se=\E^Y:so=\E^_:is=\E^Y:\nl4|adm42|42|lsi adm42:\\n^I:vs=\EC\E3 \E3(:\\n^I:cr=^M:do=^J:nl=^J:bl=^G:\\n^I:al=270\EE:am:le=^H:bs:cd=\EY:ce=\ET:cl=\E;:cm=\E=%+ %+ :co#80:\\n^I:dc=\EW:dl=\ER:ei=\Er:im=\Eq:ip=6*:li#24:\\n^I:bt=\EI:nd=^L:se=\EG0:so=\EG4:ta=\t:up=^k:\\n^I:ma=^K^P:pc=\177:\n#\n# Apple Mac\n#\n# Installed at Sun by John Gilmore (untested).  Via netnew




s, from:\n# Robert Viduya: ...!gatech!gitpyr!robert\n# Office of Computing Services\n# Georgia Institute of Technology, Atlanta GA 30332\n# Phone:  (404) 894-4669\nAm|mac|macintosh|Apple Macintosh with MacTerminal:\\n^I:AL=\E[%dL:al=\E[L:am:bl=^G:bs:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\\n^I:cm=\E[%i%d;%dH:co#80:cs=\E[%i%d;%dr:ct=\E[g:DC=\E[%dP:\\n^I:dc=\E[P:DL=\E[%dM:dl=\E[M:do=\E[B:DO=\E[%dB:ei=:ho=\E[H:\\n^I:IC=\E[%d@ :ic=\E[@ :im=:is=\E(B\E[2l\E[20l\E[?3l\E[?7h:\\n^I:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kn#4:kr=\E[C:k




u=\E[A:\\n^I:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:LE=\E[%dD:le=\E[D:li#24:\\n^I:ll=\E[24;1H:ms:nd=\E[C:nw=\EE:pt:rc=\E8:ri=\E[C:RI=\E[%dC:\\n^I:sc=\E7:se=\E[m:sf=\ED:so=\E[1m:sr=\EM:st=\EH:ue=\E[m:\\n^I:up=\E[A:UP=\E[%dA:us=\E[4m:xn:xo:\n#\nsu|lnet|dumb|un|unknown:\\n^I:co#80:os:am:\nsd|du|dialup:\\n^I:co#80:os:am:\nV3|vi300|visual function keys:\\n^I:bl=^G:do=^J:bt=\E[Z:ul:\:am:al=\E[L:\:cm=\E[%i%2;%2H:\\n^I:bs:cd=\E[J:ce=\E[K:cl=\E[H\E[2N:\:co#80:ho=\E[H:\\n^I:dl=\E[M:dc=\E[P:\:im=\E[4h:ei=\E[4l:\\n^I:kl=\E[D




:kr=\E[C:ku=\E[A:kd=\E[B:kh=\E[H:\\n^I:ma=\E[Dh\E[Bj\E[Ak\E[Cl:so=\E[1m:se=\E[0m:\:us=\E[4m:ue=\E[0m:\\n^I:mf=\E[w:me=^M:ll=\E[24;1f:\:li#24:nd=\E[C:pt:up=\E[A:\ndV|xterms|xterm|vt102|vt100|vt-100|pt100|pt-100|dec vt100:\\n^I:co#80:li#24:am:cl=50\E[;H\E[2J:bs:cm=5\E[%i%2;%2H:nd=2\E[C:up=2\E[A:\\n^I:ce=3\E[K:cd=50\E[J:so=2\E[7m:se=2\E[m:us=2\E[4m:ue=2\E[m:\\n^I:is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:ks=\E[?1h\E=:ke=\E[?1l\E>:\\n^I:if=/usr/lib/tabset/vt100:ku=\EOA:kd=\EOB:kr=\EOC:kl=\EOD:\\n^I:kh=\E[H:k1=\EOP:




k2=\EOQ:k3=\EOR:k4=\EOS:pt:sr=5\EM:\ndf|dw4|decwriter IV:\\n^I:cr=^M:do=^J:bl=^G:le=^H:bs:co#132\037777777661\037777777657\037777777774"), line 558 in "malloc.c"
tgetent(bp = "emacs:co#80:tc=unknown:su|lnet|dumb|un|unknown:^I:co#80:os:am:\n", name = "emacs"), line 527 in "termcap.c"
term_init(terminal_type = "emacs"), line 958 in "term.c"
init_display(), line 1441 in "dispnew.c"
main(argc = 1, argv = 0x7fffe938, envp = 0x7fffe940), line 354 in "emacs.c"
crt0.start1(argc = 1, xargv = "/nobackup/err"), line 304 in "crt0.c"
_start(), line 291 in "crt0.c"
(dbx) 
---------------------------------------------------------------------------
 Steve Turner (on the Si prairie  - UIUC CSRD)

UUCP:    {ihnp4,seismo,pur-ee,convex}!uiucdcs!uicsrd!turner
ARPANET: turner%uicsrd.csrd.uiuc.edu
CSNET:   turner%uicsrd@uiuc.csnet            *-)    Mutants for
BITNET:  turner@uicsrd.csrd.uiuc.edu                Nuclear Power!  (-%