gcc says those values are out of bounds
[apps/madtty.git] / README
1 ROTE - OUR OWN TERMINAL EMULATION LIBRARY
2 Copyright (c) 2004 Bruno T. C. de Oliveira
3 Licensed under the GNU Lesser General Public License
4 See the COPYING file for more details on the license terms.
5
6 [[ AUTHOR AND PROJECT HOMEPAGE ]]
7 This library was written by Bruno Takahashi C. de Oliveira, a
8 Computer Science student at Universidade de São Paulo, Brazil.
9 The project home page is:
10
11                 http://rote.sourceforge.net
12
13 [[ OTHER PEOPLE INVOLVED IN DEVELOPING THIS LIBRARY ]]
14
15 * Phil Endecott (phil_achbq_endecott@chezphil.org)
16 * Johan Bevemyr (jb@bevemyr.com)
17
18 [[ WHAT IS IT? ]]
19
20 ROTE is a simple C library for VT102 terminal emulation. It allows the
21 programmer to set up virtual 'screens' and send them data. The virtual
22 screens will emulate the behavior of a VT102 terminal, interpreting
23 escape sequences, control characters and such. The library supports
24 ncurses as well so that you may render the virtual screen to the real
25 screen when you need to.
26
27 [[ MORE DETAILS ]]
28
29 There are several programs that do terminal emulation, such as xterm, rxvt,
30 screen and even the Linux console driver itself. However, it is not easy to
31 isolate their terminal emulation logic and put it in a module that can be
32 easily reused in other programs. That's where the ROTE library comes in.
33
34 The goal of the ROTE library is to provide terminal emulation support
35 for C/C++ applications, making it possible to write programs that display
36 terminals in embedded windows within them, or even monitor the display
37 produced by other programs.
38
39 The ROTE library does not depend on any other library (except libc, of course),
40 and ncurses support can be enabled or disabled at compile-time. With ncurses
41 support compiled in, the ROTE library is able to render the virtual screens
42 to the physical screen (actually any ncurses window) and can also translate
43 ncurses key codes to the escape sequences the Linux console would have
44 produced (and feed them into the terminal). Ncurses support is not mandatory
45 however, and ROTE will work fine without it, but in that case the application
46 must take care of drawing the terminal to the screen in whichever way it
47 sees fit.
48
49 ROTE also encapsulates the functionality needed to execute a child process
50 using the virtual screen as the controlling terminal. It will handle the
51 creation of the pseudo-terminal and the child process. All the application
52 has to do is tell it the command to run in the terminal and call an update
53 function at regular intervals to allow the terminal to update itself.
54
55