Improved full screen implementation; added bold and underline styles. Centralized UI event handling. Added checks to limit number of output lines displayed. Added capability to interrupt hung output data streams. Nearing full backwards compatibility with xterm. git-svn-id: svn://10.0.0.236/trunk@62265 18797224-902f-48f8-a5cc-f745e15eee43
140 lines
5.3 KiB
Plaintext
140 lines
5.3 KiB
Plaintext
base --- core source code for XMLterm and LineTerm
|
|
|
|
XMLterm may be invoked in one of two ways:
|
|
1. By loading the URL "chrome://xmlterm/content/xmlterm.html" in mozilla, or
|
|
2. By running the stand-alone executable "../geckoterm/xmlterm".
|
|
The diagram below shows the control-flow/layering hierarchy for both ways
|
|
of invoking XMLterm.
|
|
|
|
XMLterm control-flow/layering hierarchy
|
|
=======================================
|
|
|
|
mozilla-executable geckoterm-executable
|
|
| |
|
|
../ui/content/xmlterm.xul |
|
|
| |
|
|
../ui/content/xmlterm.html ../ui/content/xmlterm.html
|
|
| |
|
|
mozXMLTermShell ../geckoterm/mozGeckoTerm
|
|
| | |
|
|
+--------------+---------------+ |
|
|
| mozSimpleContainer
|
|
mozXMLTerminal
|
|
|
|
|
+-------------------+--------------------+
|
|
| | |
|
|
mozXMLTermSession mozLineTermAux mozXMLTermListeners
|
|
| | |
|
|
| | |
|
|
(rendering...) (LineTerm) (user input)
|
|
(pseudo-TTY/shell)
|
|
|
|
|
|
1 Mar 2000
|
|
===========================================================================
|
|
FILES:
|
|
|
|
The core source code for XMLterm in this directory consists of two distinct
|
|
families of files, those with names that begin with the prefix "moz" and all
|
|
the other files. The former are the Mozilla-specific portions of XMLterm,
|
|
written in C++. The remaining files constitute the Mozilla-independent portion
|
|
of XMLterm, referred to as "LineTerm".
|
|
|
|
============================================================================
|
|
LINETERM:
|
|
|
|
LineTerm is a line-oriented terminal program, in some respects similar in
|
|
functionality to the GNU Readline package. It is completely independent of the
|
|
Mozilla source code, is written in plain C, and dually licensed under GPL and
|
|
MPL.
|
|
|
|
============================================================================
|
|
INTERFACES:
|
|
|
|
lineterm.h Plain C interface to LineTerm
|
|
(used by mozLineTerm)
|
|
|
|
mozILineTerm.idl Scriptable XPCOM/XPCONNECT interface to LineTerm
|
|
(not used at the moment)
|
|
|
|
mozILineTermAux.h XPCOM interface to LineTerm, with extra features
|
|
(used by mozXMLTerminal)
|
|
|
|
mozIXMLTermShell.h Scriptable XPCOM/XPCONNECT interface to XMLterm
|
|
(used by the Javascript glue code in the XMLterm
|
|
start page at ../ui/content/xmlterm.html)
|
|
|
|
mozIXMLTerminal.h XPCOM interface to XMLterm
|
|
(used by mozXMLTermShell, ../geckoterm/mozGeckoterm)
|
|
|
|
mozIXMLTermStream.h XPCOM interface for displaying HTML/XML streams in
|
|
IFRAMES (used by mozXMLTermSession)
|
|
|
|
|
|
IMPLEMENTATIONS:
|
|
|
|
|
|
mozLineTerm.h
|
|
mozLineTermcpp Implementation of mozILineTerm, mozILineTermAux
|
|
Uses LineTerm to access shell
|
|
|
|
mozXMLTermShell.h
|
|
mozXMLTermShell.cpp Implementation of mozIXMLTermShell
|
|
Uses mozIXMLTerminal to create XMLterm
|
|
|
|
mozXMLTerminal.h
|
|
mozXMLTerminal.cpp Implementation of mozIXMLTerminal,
|
|
nsIDocumentLoaderObserver, and
|
|
nsIObserver
|
|
Uses mozILineTermAux to create LineTerm
|
|
Uses mozXMLTermListeners to capture user input
|
|
Uses mozXMLTermSession to display input/output
|
|
|
|
mozXMLTermListeners.h
|
|
mozXMLTermListeners.cpp Implementations of nsIDOMKeyListener,
|
|
nsIDOMTextListener,
|
|
nsIDOMMouseListener,
|
|
nsIDOMDragListener
|
|
|
|
mozXMLTermStream.h
|
|
mozXMLTermStreamcpp Implementation of mozIXMLTermStream
|
|
|
|
|
|
CLASSES:
|
|
|
|
|
|
mozXMLTermSession.h/cpp Class to manage session input/output display
|
|
(used by mozXMLTerminal)
|
|
Uses mozIXMLTermStream to display streams
|
|
|
|
mozXMLTermUtils.h/cpp Abstract class for static utility functions
|
|
(for use by all classes)
|
|
|
|
============================================================================
|
|
The following are dually licensed under MPL and GPL:
|
|
|
|
LineTerm package:
|
|
|
|
lineterm.h Public interface to LineTerm
|
|
|
|
ltermPrivate.h Private common header file
|
|
|
|
ltermManager.c LineTerm manager
|
|
ltermIO.c Overlapping I/O functions
|
|
ltermInput.c Input handler
|
|
ltermOutput.c Output handler
|
|
ltermEscape.c Escape sequence handler
|
|
|
|
Low-level packages:
|
|
|
|
ptystream.h
|
|
ptystream.c Stream-like interface to Unix pseudo-TTY
|
|
|
|
tracelog.h
|
|
tracelog.c Simple tracing/logging diagnostic library
|
|
|
|
unistring.h
|
|
unistring.c Simple Unicode manipulation library
|
|
|
|
============================================================================
|