VT100/xterm-support for syscons(4) committed to SVN

Ed Schouten ed at 80386.nl
Thu Jan 1 13:33:42 UTC 2009

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!

 Ed Schouten <ed at 80386.nl>
 WWW: http://80386.nl/

----- Forwarded message from Ed Schouten <ed at FreeBSD.org> -----
> Date: Thu, 1 Jan 2009 13:26:53 +0000 (UTC)
> From: Ed Schouten <ed at FreeBSD.org>
> To: src-committers at freebsd.org, svn-src-all at freebsd.org,
> 	svn-src-head at freebsd.org
> Subject: svn commit: r186681 - in head/sys: conf dev/syscons
> 	dev/syscons/teken pc98/cbus
> Author: ed
> Date: Thu Jan  1 13:26:53 2009
> New Revision: 186681
> URL: http://svn.freebsd.org/changeset/base/186681
> Log:
>   Replace syscons terminal renderer by a new renderer that uses libteken.
>   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.
>   A lot of random notes, which could be of interest to users/developers:
>   - 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:
>     - Keypad application mode (DECKPAM)
>     - Character sets (SCS)
>   - 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:
>     - 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.
>     - teken_stress: a stress testing application that emulates random
>       terminal output. libteken has literally survived multiple terabytes
>       of random input.
>   - 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.
>   - 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?
>   - I've removed the `dumb' terminal emulator. It has been broken for
>     years. It hasn't survived the `struct proc' -> `struct thread'
>     conversion.
>   - 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'.
>   - 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.
>   Discussed on:	current@, hackers@
>   Discussed with:	philip (at 25C3)
----- End forwarded message -----
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20090101/fc2a1998/attachment.pgp

More information about the freebsd-current mailing list