Portability issues
---------------------

16 Sep 1999

Much of the XMLterm code is cross-platform. Implementation features that 
affect portability at the moment are:

1. Main event handling:
     By default, the present implementation of XMLterm directly uses a GTK
     call to set up a handler for XMLterm output events. This can be disabled
     by setting NO_CALLBACK=1 in the make command line, and calling the
     method mozIXMLTermShell::Poll() frequently to poll for readable output
     from LineTerm.
     (A better event/callback mechanism needs to be implemented.)

2. pseudo-TTY (PTY) operations:
     The PTY interface for XMLterm is currently implemented only for
     two platforms, Linux and Solaris. At some point, the PTY interface
     should be ported to most Unix platforms. On platforms where PTY
     operations are not implemented, the cross-platform NSPR process mechanism
     is used to create a "slave" process. However, this process uses NSPR
     pipes for communication, which prevents the use of terminal control
     characters such as the most usefule Control-C. (Is there a way around
     this restriction?)

  What about Windows? It should be possible to use XMLterm even under Windows,
  using the NSPR process/pipe functions for communication and
  using the Cygwin utilities to simulate the Unix environment.

3. The lightweight GeckoTerm uses GTK.

4. The "unistring" module uses wchar functions which do not always have
   the same names.

--
