PMD code sweep, #6 don't add MyWindow twice to MyApplication
[nikiroo-utils.git] / README.md
index 1e61a77c39346de09ba1ee75bb5f4082c4c49f64..dc976599bf6cffeb4d37a2d48a3d0bc0932d5d77 100644 (file)
--- a/README.md
+++ b/README.md
@@ -32,7 +32,7 @@ Jexer currently supports three backends:
 
 Additional backends can be created by subclassing
 jexer.backend.Backend and passing it into the TApplication
-constructor.
+constructor.  See Demo5 and Demo6 for examples of other backends.
 
 The Jexer homepage, which includes additional information and binary
 release downloads, is at: https://jexer.sourceforge.io .  The Jexer
@@ -73,8 +73,9 @@ class MyApplication extends TApplication {
         addFileMenu();
         addWindowMenu();
 
-        // Add a custom window, see below for its code.
-        addWindow(new MyWindow(this));
+        // Add a custom window, see below for its code.  The TWindow
+        // constructor will add it to this application.
+        new MyWindow(this);
     }
 
     public static void main(String [] args) {
@@ -196,6 +197,14 @@ The following properties control features of Jexer:
   be faster on slower systems but also more likely to have screen
   tearing.  Default: true.
 
+  jexer.TTerminal.ptypipe
+  -----------------------
+
+  Used by jexer.TTerminalWindow.  If true, spawn shell using the
+  'ptypipe' utility rather than 'script'.  This permits terminals to
+  resize with the window.  ptypipe is a separate C language utility,
+  available at https://github.com/klamonte/ptypipe.  Default: false.
+
 
 
 Known Issues / Arbitrary Decisions
@@ -213,15 +222,20 @@ ambiguous.  This section describes such issues.
     input (see the ENABLE_LINE_INPUT flag for GetConsoleMode() and
     SetConsoleMode()).
 
-  - TTerminalWindow launches 'script -fqe /dev/null' or 'script -q -F
-    /dev/null' on non-Windows platforms.  This is a workaround for the
-    C library behavior of checking for a tty: script launches $SHELL
-    in a pseudo-tty.  This works on Linux and Mac but might not on
-    other Posix-y platforms.
+  - TTerminalWindow by default launches 'script -fqe /dev/null' or
+    'script -q -F /dev/null' on non-Windows platforms.  This is a
+    workaround for the C library behavior of checking for a tty:
+    script launches $SHELL in a pseudo-tty.  This works on Linux and
+    Mac but might not on other Posix-y platforms.
 
   - Closing a TTerminalWindow without exiting the process inside it
     may result in a zombie 'script' process.
 
+  - TTerminalWindow can only notify the child process of changes in
+    window size if using the 'ptypipe' utility, due to Java's lack of
+    support for forkpty() and similar.  ptypipe is available at
+    https://github.com/klamonte/ptypipe.
+
   - 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