PERFORCE change 153552 for review
Ed Schouten
ed at FreeBSD.org
Tue Nov 25 11:46:51 PST 2008
http://perforce.freebsd.org/chv.cgi?CH=153552
Change 153552 by ed at ed_dull on 2008/11/25 19:46:27
As an experiment, add libteken to the syscons source code.
What's libteken? Our syscons driver uses a terminal type called
cons25. There's nothing wrong with cons25, but the problem is
that it isn't really compatible with other systems out there.
For example, I SSH to my HP2626 switch from syscons, it won't
work. libteken is an attempt to emulate an xterm-color.
Eventually we should also place the UTF-8 handling inside
libteken.
libteken is simply a library that converts input (output from,
say, a TTY) to drawing commands that can be used by syscons.
There are a couple of reasons why we want to put this in a
library:
- Having a well-defined API that doesn't depend on syscons
itself allows me to easily develop this in userspace. I've got
a simple application built with ncurses that emulates a
terminal inside xterm itself.
- It's hard to do right. There are always very small edge cases
that can mess up the rendering. If we only write it once, we
could for example teach window(1) how to use it as well.
- If we ever get multiple console drivers, it's only a matter of
building on top of libteken to get the terminal emulation
working properly.
So why did I choose xterm-color? It seems like this is the most
commonly used terminal type. There are a lot of
terminal-emulators that already use xterm-color. Even Mac OS X's
Terminal.app just uses it. It's probably the safest approach.
libteken is hardly finished. There are a lot of loose ends. The
reason why I'm adding it to the MPSAFE TTY branch already is
because I want to find out how efficient it is right now and if
it can be fitted inside the syscons code.
Affected files ...
.. //depot/projects/mpsafetty/sys/conf/files#27 edit
.. //depot/projects/mpsafetty/sys/dev/syscons/teken/teken.c#1 add
.. //depot/projects/mpsafetty/sys/dev/syscons/teken/teken.h#1 add
.. //depot/projects/mpsafetty/sys/dev/syscons/teken/teken_internal.h#1 add
.. //depot/projects/mpsafetty/sys/dev/syscons/teken/teken_state.c#1 add
.. //depot/projects/mpsafetty/sys/dev/syscons/teken/teken_subr.c#1 add
Differences ...
==== //depot/projects/mpsafetty/sys/conf/files#27 (text+ko) ====
@@ -1270,6 +1270,9 @@
dev/syscons/star/star_saver.c optional star_saver
dev/syscons/syscons.c optional sc
dev/syscons/sysmouse.c optional sc
+dev/syscons/teken/teken.c optional sc
+dev/syscons/teken/teken_state.c optional sc
+dev/syscons/teken/teken_subr.c optional sc
dev/syscons/warp/warp_saver.c optional warp_saver
dev/tdfx/tdfx_linux.c optional tdfx_linux tdfx compat_linux
dev/tdfx/tdfx_pci.c optional tdfx pci
More information about the p4-projects
mailing list