Subject: Re: pkg/29275: devel/ncurses has missing terminfo details for xterm
To: None <Peter.Bex@student.kun.nl>
From: Johnny C. Lam <jlam@NetBSD.org>
List: pkgsrc-bugs
Date: 03/24/2005 03:36:51
On Mon, Feb 07, 2005 at 09:54:01PM +0000, Peter.Bex@student.kun.nl wrote:
> 	
> System: NetBSD frohike.nvie.com 2.0 NetBSD 2.0 (FROHIKE) #0: Wed Dec 22 10:00:59 CET 2004 sjamaan@frohike.nvie.com:/usr/src/sys/arch/i386/compile/FROHIKE i386
> Architecture: i386
> Machine: i386
> >Description:
> 	The xterm entry in NetBSD's termcap has a `vi' and `vs' entry, which
> 	ncurses' terminfo is missing.  This caused a certain program to complain
> 	because curs_set(0) return ERR.
> 
> Trivial fix:
> 
> ------------- patches/patch-ae ----------------
> $NetBSD$
> 
> --- misc/terminfo.src.orig	2004-01-18 02:37:18.000000000 +0100
> +++ misc/terminfo.src
> @@ -2741,10 +2741,10 @@ xterm-r6|xterm-old|xterm X11R6 version, 
>  	OTbs, am, km, mir, msgr, xenl, 
>  	cols#80, it#8, lines#24, 
>  	acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, 
> -	bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=^M, 
> +	bel=^G, bold=\E[1m, civis=\E[?25l, clear=\E[H\E[2J, cr=^M, 
>  	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, 
>  	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C, 
> -	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, 
> +	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[?25h
>  	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, 
>  	el=\E[K, enacs=\E)0, home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, 
>  	il1=\E[L, ind=^J, 
> ------------------------------------------------

This patch modifies the "xterm-r6" entry to include the civis and
cvvis definitions.  This "fixes" the problem because the "xterm" entry
is just a clone of "xterm-r6".  There are two other things we can do:

    (1) Modify the "xterm" entry to clone "xterm-xfree86" instead, which
	does have the civis and cvvis definitions, and which should work
	with the XFree86 distributed with NetBSD.  This would also
	require a PKGREVISION bump of ncurses.

    (2) Tell the user to set TERM=xterm-xfree86 in the shell environment.

If I had to choose between the supplied patch and option (1), I would
rather go with option (1) since is leaves open the possibility for a
user to explicitly choose TERM=xterm-r6 to get the other behavior.
However, I'm not completely sure that making this change is the best
thing to do since this entry is possibly wrong for xterm running on,
e.g. Solaris or IRIX.

	-- Johnny Lam <jlam@NetBSD.org>