mark@hyper.UUCP (Mark Mendel) (08/13/87)
There is an obscure bug in the termlib/termcap library. Tgetent() uses 0 as an
invalid return value from open(). This works fine unless stdin has been closed.
Tcsh does this on startup. The result is that the value of your TERMCAP
variable is not used if it is a file.
Here is the fix:
*** termcap.c.orig Thu Aug 13 14:25:48 1987
--- termcap.c Thu Aug 13 14:28:56 1987
***************
*** 44,50
int tf;
tbuf = bp;
! tf = 0;
#ifndef V6
cp = getenv("TERMCAP");
/*
--- 44,50 -----
int tf;
tbuf = bp;
! tf = -1;
#ifndef V6
cp = getenv("TERMCAP");
/*
***************
*** 66,72
} else
tf = open(cp, 0);
}
! if (tf==0)
tf = open(E_TERMCAP, 0);
#else
tf = open(E_TERMCAP, 0);
--- 66,72 -----
} else
tf = open(cp, 0);
}
! if (tf==-1)
tf = open(E_TERMCAP, 0);
#else
tf = open(E_TERMCAP, 0);
--
Mark G. Mendel, ihnp4!umn-cs!hyper!mark, Network Systems Corporation
(612)-424-4888 x2779