Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 27 Jun 1996 13:18:19 +0200 (MET DST)
From:      "Julian H. Stacey" <jhs@freebsd.org>
To:        bostic@cs.berkeley.edu
Cc:        current@freebsd.org
Subject:   does cgetent() tgetent() vi see if an element of TERMPATH is a file ?
Message-ID:  <199606271118.NAA12464@vector.jhs.no_domain>

next in thread | raw e-mail | index | archive | help
Hi Keith Bostic,
cc FreeBSD current,

Does current FreeBSD lib cgetent() called from tgetent() called from Vi 1.34
always correctly detect the difference between
an element of TERMPATH being a file & a directory ?

Problem:
	vi blew up with:
		Error: initscr failed: Not a directory.
		xterm: unknown terminal type, or terminal lacks
			necessary features.
	as I had 
		TERMPATH /usr/p/jhs/.termcap:/usr/local/etc/termcap:\
		 	/etc/termcap:/usr/share/misc/termcap
	& /usr/local/etc somehow was a file 
		(from hpack,
		(BTW I've just checked on my current ports/,
		& install called from
		ports/archivers/hpack.non-usa.only automatically creates etc,
		so no problem there now, if ever, maybe the functionality
		of install changed or something similar )

I'm not sure if its a bug or a mistake in my config somewhere, as
I can demo the effect on my FreeBSD 2.1 Release box, 
but not on my FreeBSD Current box.

Release & Current have identical	src/lib/libtermcap/termcap.c
Rel & Curr vi are almost the same, only difference:
	Makefile (MLINKS) & vi/v_ulcase.c (Toggle upper & lower case letters)
	PS exactly the same README version 1.34

tgetent is called from usr.bin/vi/
	sex/sex_screen.c sex/sex_window.c svi/svi_curses.c

src/lib/libtermcap/termcap.c line 138:
	i = cgetent(&dummy, pathvec, (char *)name);

libc/gen/getcap.c line 272 :
				fd = open(*db_p, O_RDONLY, 0);
                                if (fd < 0) {       
                                        /* No error on unfound file. */
                                        if (errno == ENOENT)
                                                continue;
                                        free(record);
                                        return (-2);

Could that be the problem ?
Anyone more familiar with this ?

Julian
--
Julian H. Stacey	jhs@freebsd.org		http://www.freebsd.org/~jhs/



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199606271118.NAA12464>