Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 1 Jan 2009 14:33:40 +0100
From:      Ed Schouten <ed@80386.nl>
To:        current@FreeBSD.org
Subject:   VT100/xterm-support for syscons(4) committed to SVN
Message-ID:  <20090101133340.GE1176@hoeg.nl>

next in thread | raw e-mail | index | archive | help

--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 <ed@80386.nl>
 WWW: http://80386.nl/

----- Forwarded message from Ed Schouten <ed@FreeBSD.org> -----
> Date: Thu, 1 Jan 2009 13:26:53 +0000 (UTC)
> From: Ed Schouten <ed@FreeBSD.org>
> 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--



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