telnet support 75%
[nikiroo-utils.git] / README.md
index 1e1bb544bbaa83f05eda45babc25eef10c57b1dc..60734e65b63f445a0efd32451d39c42fe17d0272 100644 (file)
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@ wishing to use the actual C++ Turbo Vision library, see [Sergio
 Sigala's updated version](http://tvision.sourceforge.net/) that runs
 on many more platforms.
 
-Two backends are available:
+Three backends are available:
 
 * System.in/out to a command-line ECMA-48 / ANSI X3.64 type terminal
   (tested on Linux + xterm).  I/O is handled through terminal escape
@@ -20,13 +20,20 @@ Two backends are available:
   are supported.  For the demo application, this is the default
   backend on non-Windows platforms.
 
+* The same command-line ECMA-48 / ANSI X3.64 type terminal as above,
+  but to any general InputStream/OutputStream.  See the file
+  jexer.demos.Demo2 for an example of running the demo over a TCP
+  socket.
+
 * Java Swing UI.  This backend can be selected by setting
   jexer.Swing=true.  The default window size for Swing is 132x40,
   which is set in jexer.session.SwingSession.  For the demo
   application, this is the default backend on Windows platforms.
 
 The demo application showing the existing UI controls is available via
-'java -jar jexer.jar' or 'java -Djexer.Swing=true -jar jexer.jar' .
+'java -jar jexer.jar', 'java -Djexer.Swing=true -jar jexer.jar', or
+'java -cp jexer.jar jexer.demos.Demo2 PORT' (where PORT is a number to
+run the TCP daemon on).
 
 Additional backends can be created by subclassing
 jexer.backend.Backend and passing it into the TApplication
@@ -82,7 +89,7 @@ public class MyApplication extends TApplication {
 }
 ```
 
-See the file demos/Demo1.java for detailed examples.
+See the files in jexer.demos for more detailed examples.
 
 
 
@@ -93,9 +100,6 @@ Some arbitrary design decisions had to be made when either the
 obviously expected behavior did not happen or when a specification was
 ambiguous.  This section describes such issues.
 
-  TTerminalWindow
-  ---------------
-
   - TTerminalWindow will hang on input from the remote if the
     TApplication is exited before the TTerminalWindow's process has
     closed on its own.  This is due to a Java limitation/interaction
@@ -115,28 +119,24 @@ ambiguous.  This section describes such issues.
     checking for a tty: script launches $SHELL in a pseudo-tty.  This
     works on Linux but might not on other Posix-y platforms.
 
-  ECMA48 Backend
-  --------------
-
-  - Java's InputStreamReader requires a valid UTF-8 stream.  The
-    default X10 encoding for mouse coordinates outside (160,94) can
-    corrupt that stream, at best putting garbage keyboard events in
-    the input queue but at worst causing the backend reader thread to
-    throw an Exception and exit and make the entire UI unusable.
-    Mouse support therefore requires a terminal that can deliver
-    either UTF-8 coordinates (1005 mode) or SGR coordinates (1006
-    mode).  Most modern terminals can do this.
-
-  Use of 'stty'
-  -------------
+  - Java's InputStreamReader as used by the ECMA48 backend requires a
+    valid UTF-8 stream.  The default X10 encoding for mouse
+    coordinates outside (160,94) can corrupt that stream, at best
+    putting garbage keyboard events in the input queue but at worst
+    causing the backend reader thread to throw an Exception and exit
+    and make the entire UI unusable.  Mouse support therefore requires
+    a terminal that can deliver either UTF-8 coordinates (1005 mode)
+    or SGR coordinates (1006 mode).  Most modern terminals can do
+    this.
 
   - jexer.session.TTYSession calls 'stty size' once every second to
     check the current window size, performing the same function as
     ioctl(TIOCGWINSZ) but without requiring a native library.
 
   - jexer.io.ECMA48Terminal calls 'stty' to perform the equivalent of
-    cfmakeraw().  The terminal is (blindly!) put back in 'stty sane
-    cooked' mode when exiting.
+    cfmakeraw() when using System.in/out.  System.out is also
+    (blindly!)  put in 'stty sane cooked' mode when exiting.
+
 
 
 System Properties
@@ -164,10 +164,6 @@ Roadmap
 
 Many tasks remain before calling this version 1.0:
 
-0.0.2: STABILIZE EXISTING
-
-- ECMA48Backend running on socket
-
 0.0.3: FINISH PORTING
 
 - TTreeView
@@ -187,6 +183,7 @@ Many tasks remain before calling this version 1.0:
 0.0.5: BUG HUNT
 
 - TSubMenu keyboard mnemonic not working
+- Swing performance.  Even with double buffering it isn't great.
 
 0.1.0: BETA RELEASE