Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 1 Jan 2009 13:26:53 +0000 (UTC)
From:      Ed Schouten <ed@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/conf files files.amd64 files.i386 files.ia64 files.powerpc files.sparc64 src/sys/dev/syscons scterm-dumb.c scterm-sc.c scterm-teken.c scterm.c sctermvar.h syscons.c syscons.h src/sys/dev/syscons/teken Makefile gensequences ...
Message-ID:  <200901011327.n01DRYta031451@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
ed          2009-01-01 13:26:53 UTC

  FreeBSD src repository

  Modified files:
    sys/conf             files files.amd64 files.i386 files.ia64 
                         files.powerpc files.sparc64 
    sys/dev/syscons      scterm.c syscons.c syscons.h 
    sys/pc98/cbus        scterm-sck.c 
  Added files:
    sys/dev/syscons      scterm-teken.c 
    sys/dev/syscons/teken Makefile gensequences sequences teken.c 
                          teken.h teken_demo.c teken_stress.c 
                          teken_subr.h teken_subr_compat.h 
                          teken_wcwidth.h 
    sys/pc98/cbus        sctermvar.h 
  Removed files:
    sys/dev/syscons      scterm-dumb.c scterm-sc.c sctermvar.h 
  Log:
  SVN rev 186681 on 2009-01-01 13:26:53Z by ed
  
  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)
  
  Revision  Changes    Path
  1.1361    +5 -1      src/sys/conf/files
  1.127     +2 -1      src/sys/conf/files.amd64
  1.612     +2 -1      src/sys/conf/files.i386
  1.96      +2 -1      src/sys/conf/files.ia64
  1.88      +2 -1      src/sys/conf/files.powerpc
  1.104     +2 -1      src/sys/conf/files.sparc64
  1.8       +0 -155    src/sys/dev/syscons/scterm-dumb.c (dead)
  1.25      +0 -811    src/sys/dev/syscons/scterm-sc.c (dead)
  1.1       +504 -0    src/sys/dev/syscons/scterm-teken.c (new)
  1.7       +0 -1      src/sys/dev/syscons/scterm.c
  1.5       +0 -432    src/sys/dev/syscons/sctermvar.h (dead)
  1.466     +27 -10    src/sys/dev/syscons/syscons.c
  1.92      +2 -1      src/sys/dev/syscons/syscons.h
  1.1       +13 -0     src/sys/dev/syscons/teken/Makefile (new)
  1.1       +157 -0    src/sys/dev/syscons/teken/gensequences (new)
  1.1       +107 -0    src/sys/dev/syscons/teken/sequences (new)
  1.1       +386 -0    src/sys/dev/syscons/teken/teken.c (new)
  1.1       +168 -0    src/sys/dev/syscons/teken/teken.h (new)
  1.1       +336 -0    src/sys/dev/syscons/teken/teken_demo.c (new)
  1.1       +123 -0    src/sys/dev/syscons/teken/teken_stress.c (new)
  1.1       +1107 -0   src/sys/dev/syscons/teken/teken_subr.h (new)
  1.1       +51 -0     src/sys/dev/syscons/teken/teken_subr_compat.h (new)
  1.1       +120 -0    src/sys/dev/syscons/teken/teken_wcwidth.h (new)
  1.19      +1 -5      src/sys/pc98/cbus/scterm-sck.c
  1.1       +432 -0    src/sys/pc98/cbus/sctermvar.h (new)



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