From owner-freebsd-arch@FreeBSD.ORG Fri Feb 21 15:46:33 2014 Return-Path: Delivered-To: arch@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B55EBC1F; Fri, 21 Feb 2014 15:46:33 +0000 (UTC) Received: from mho-01-ewr.mailhop.org (mho-03-ewr.mailhop.org [204.13.248.66]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 880691C5B; Fri, 21 Feb 2014 15:46:33 +0000 (UTC) Received: from c-24-8-230-52.hsd1.co.comcast.net ([24.8.230.52] helo=damnhippie.dyndns.org) by mho-01-ewr.mailhop.org with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1WGsJ6-000NuX-9Q; Fri, 21 Feb 2014 15:46:32 +0000 Received: from [172.22.42.240] (revolution.hippie.lan [172.22.42.240]) by damnhippie.dyndns.org (8.14.3/8.14.3) with ESMTP id s1LFkTQW032918; Fri, 21 Feb 2014 08:46:29 -0700 (MST) (envelope-from ian@FreeBSD.org) X-Mail-Handler: Dyn Standard SMTP by Dyn X-Originating-IP: 24.8.230.52 X-Report-Abuse-To: abuse@dyndns.com (see http://www.dyndns.com/services/sendlabs/outbound_abuse.html for abuse reporting information) X-MHO-User: U2FsdGVkX19tW8dfkntqcITRp+y8T7d6 Subject: Re: terminfo From: Ian Lepore To: Ed Schouten In-Reply-To: References: <5304A0CC.5000505@FreeBSD.org> Content-Type: text/plain; charset="us-ascii" Date: Fri, 21 Feb 2014 08:46:29 -0700 Message-ID: <1392997589.1145.91.camel@revolution.hippie.lan> Mime-Version: 1.0 X-Mailer: Evolution 2.32.1 FreeBSD GNOME Team Port Content-Transfer-Encoding: 7bit Cc: arch@FreeBSD.org, Bryan Drewery X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2014 15:46:33 -0000 On Fri, 2014-02-21 at 13:05 +0100, Ed Schouten wrote: > Hi Bryan, > > On 19 February 2014 13:17, Bryan Drewery wrote: > > Why do we not use terminfo? Our termcap is quite aged and missing a lot > > of modern terminals/clients. > > It is true that our termcap is quite aged, but the fact is, once you > add entries for a certain terminal, there's little need to update it > after that. ncurses itself is not really a moving target. What kind of > modern terminals/clients are missing? > > > Using terminfo would allow us to use the already well maintained database from ncurses. Is it just a matter of someone doing the work or are there other reasons? > > It's just a matter of someone doing the work. It would be nice if we > ever made this change. > > On the other hand, I might have a radical point of view here: maybe we > could consider taking the approach of sticking to termcap and > installing /etc/termcap.small as the system's default termcap. Or > maybe patch up our termcap routines to just hardcode the sequences. > > I won't deny that termcap was really useful at one point in time, but > let's be honest: the variety of terminals out there has massively > dropped over time. Terminal emulation has become a solved problem. As > of FreeBSD 9, syscons supports all the sequences described in > xterm-256color, though it isn't able to print more than 8 colours, > which is why we use TERM=xterm. Tools like screen, tmux, etc., they > use a different TERM type, but this is mainly used to detect whether > the process is running inside of screen or tmux. It does not strongly > affect the kinds of sequences that are being emitted. They work > perfectly fine if you just set TERM to xterm or xterm-256color. > > I suspect the following logic would be sufficient for at least 99.5% > of our users: > > if $TERM contains 256 > use xterm-256color > else > use xterm > > It's a shame I am so short on time nowadays, but I think it would make > so much sense to just come up with some kind of document that > standardizes the intersection of the features supported by most common > terminal emulators and get it rubber stamped by the maintainers of > various terminal emulators. If it turns out some kind of terminal > emulator does something in a non-standard way, we can just slap this > document in the author's face. That would not only benefit FreeBSD, > but also most of the other flavours of UNIX. > > $TERM should die. > All of that seems to assume that every terminal actually being used in the world today is either xterm or something that emulates it. Try using vi on a serial console on an embedded ARM board and you'll get a quick frustrating lesson in how not-xterm a serial console is. I've yet to find a combo of serial comms program and TERM setting that actually works well and lets you edit a file with vi. -- Ian