From owner-freebsd-current@FreeBSD.ORG Thu Jan 1 13:33:41 2009 Return-Path: Delivered-To: current@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EC4B11065670 for ; Thu, 1 Jan 2009 13:33:41 +0000 (UTC) (envelope-from ed@hoeg.nl) Received: from palm.hoeg.nl (mx0.hoeg.nl [IPv6:2001:7b8:613:100::211]) by mx1.freebsd.org (Postfix) with ESMTP id 70E498FC12 for ; Thu, 1 Jan 2009 13:33:41 +0000 (UTC) (envelope-from ed@hoeg.nl) Received: by palm.hoeg.nl (Postfix, from userid 1000) id 1CBC71CCA7; Thu, 1 Jan 2009 14:33:40 +0100 (CET) Date: Thu, 1 Jan 2009 14:33:40 +0100 From: Ed Schouten To: current@FreeBSD.org Message-ID: <20090101133340.GE1176@hoeg.nl> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="UpdKy7mRHviOTiWe" Content-Disposition: inline User-Agent: Mutt/1.5.18 (2008-05-17) Cc: Subject: VT100/xterm-support for syscons(4) committed to SVN X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2009 13:33:42 -0000 --UpdKy7mRHviOTiWe Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hello all, I've just committed libteken (the VT100/xterm-compatible terminal emulator I've been working on) to the FreeBSD SVN source tree. See the commit message below. Even though I had some people test the code, there's always a chance I did something wrong. Let me know if you discover any rendering issues. Happy 2009! --=20 Ed Schouten WWW: http://80386.nl/ ----- Forwarded message from Ed Schouten ----- > Date: Thu, 1 Jan 2009 13:26:53 +0000 (UTC) > From: Ed Schouten > To: src-committers@freebsd.org, svn-src-all@freebsd.org, > svn-src-head@freebsd.org > Subject: svn commit: r186681 - in head/sys: conf dev/syscons > dev/syscons/teken pc98/cbus >=20 > Author: ed > Date: Thu Jan 1 13:26:53 2009 > New Revision: 186681 > URL: http://svn.freebsd.org/changeset/base/186681 >=20 > Log: > Replace syscons terminal renderer by a new renderer that uses libteken. > =20 > Some time ago I started working on a library called libteken, which is > terminal emulator. It does not buffer any screen contents, but only > keeps terminal state, such as cursor position, attributes, etc. It > should implement all escape sequences that are implemented by the > cons25 terminal emulator, but also a fair amount of sequences that are > present in VT100 and xterm. > =20 > A lot of random notes, which could be of interest to users/developers: > =20 > - Even though I'm leaving the terminal type set to `cons25', users can > do experiments with placing `xterm-color' in /etc/ttys. Because we > only implement a subset of features of xterm, this may cause > artifacts. We should consider extending libteken, because in my > opinion xterm is the way to go. Some missing features: > =20 > - Keypad application mode (DECKPAM) > - Character sets (SCS) > =20 > - libteken is filled with a fair amount of assertions, but unfortunately > we cannot go into the debugger anymore if we fail them. I've done > development of this library almost entirely in userspace. In > sys/dev/syscons/teken there are two applications that can be helpful > when debugging the code: > =20 > - teken_demo: a terminal emulator that can be started from a regular > xterm that emulates a terminal using libteken. This application can > be very useful to debug any rendering issues. > =20 > - teken_stress: a stress testing application that emulates random > terminal output. libteken has literally survived multiple terabytes > of random input. > =20 > - libteken also includes support for UTF-8, but unfortunately our input > layer and font renderer don't support this. If users want to > experiment with UTF-8 support, they can enable `TEKEN_UTF8' in > teken.h. If you recompile your kernel or the teken_demo application, > you can hold some nice experiments. > =20 > - I've left PC98 the way it is right now. The PC98 platform has a custom > syscons renderer, which supports some form of localised input. Maybe > we should port PC98 to libteken by the time syscons supports UTF-8? > =20 > - I've removed the `dumb' terminal emulator. It has been broken for > years. It hasn't survived the `struct proc' -> `struct thread' > conversion. > =20 > - To prevent confusion among people that want to hack on libteken: > unlike syscons, the state machines that parse the escape sequences are > machine generated. This means that if you want to add new escape > sequences, you have to add an entry to the `sequences' file. This will > cause new entries to be added to `teken_state.h'. > =20 > - Any rendering artifacts that didn't occur prior to this commit are by > accident. They should be reported to me, so I can fix them. > =20 > Discussed on: current@, hackers@ > Discussed with: philip (at 25C3) > ----- End forwarded message ----- --UpdKy7mRHviOTiWe Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (FreeBSD) iEYEARECAAYFAklcxjMACgkQ52SDGA2eCwWzkACeI+Log91UxWSYNGeHHmQcyYMs csYAni4b6McmK6c0wyDca/sBCNuwlQOE =gtvV -----END PGP SIGNATURE----- --UpdKy7mRHviOTiWe--