% -*-LaTeX-*-
% <BEEBE.EPSILON>TECODIFF.LTX.12,  3-Jun-86 10:33:11, Edit by BEEBE
% This is part of TECO.LTX

This implementation of \TECO{} is a much smaller one than
\ETECO{}.  The latter needs to provide hooks for
host operating system communication, file handling, memory
allocation, terminal control, screen updating, and so on, since
it is effectively the operating system seen by \EMACS.  This
\TECO{} has all of that available inside \EPSILON{}, so it need
not duplicate that functionality.

The design of \ETECO{} has been used as a guide for this
\TECO{}, but certain implementation differences have been inevitable.
In most cases, they should not be noticeable.  Most of the
changes have been made to provide desirable enhancements to
functionality.  If you are already used to programming in
\ETECO{}, it  useful to have a summary of these
differences.  If you are not, then you can ignore the rest of
this section.

  \begin{itemize}
   \item
	Two adjacent numeric values in \ETECO{} are added; this
	is probably a hold-over from {\sc ddt}.  In this \TECO{},
	the first is discarded.

   \item
	In \ETECO{}, the bitwise {\em exclusive
	or}\index{exclusive or} operator is on \T{\#}, while this
	\TECO{} puts it on \CARET{}, reserving \T{\#} for the more
	useful based numbers.

   \item
	In \ETECO{}, the bitwise {\em or}\index{or} operator is
	on \T{\CTL{A}}, while this \TECO{} puts it on \T{|}.

   \item
	Labels\index{labels} and \X{goto} are not implemented; in
	more than ten thousand lines of \ETECO{} programming, I
	have found them unnecessary.

   \item
	In \ETECO{}, a string is represented by a number with a certain
	recognizable pattern in the high-order bits, which is
	actually a hardware string address.   Arithmetic on it
	manipulates the address, and not the string itself.  In
	this \TECO{}, strings and numbers are distinct, but
        a string is coerced to an integer by applying the same
        rules used to collect an integer which were described on
        page~\pageref{number-coercion} , and an integer is
        coerced to a string by 
        converting it to its decimal representation with no leading
        zeros, preceded by a minus sign if it is negative.

   \item
	In \ETECO{}, \T{nR} is equivalent to \T{-nC}; it moves
	the position left \T{n} characters, and is therefore
	really a redundant function.	In this \TECO{}, it
	runs the \X{regular-expression search} function, which is
	much more useful.

   \item
	The search command, \T{S}, in \ETECO{} allows specification of
	\X{multiple search targets} separated by \CTL{O} characters in
	the string.  This \TECO{} does not support this, because
	the facility is available in a much more powerful form
	in the regular-expression search function, \T{R}.

   \item
	The \ETECO{} debug facility provides for stepping only
	over complete lines of commands.  This \TECO{} steps by
	single commands as well as by complete lines.

   \item
	\ETECO{} supports Q-registers named by \A{ESC}-delimited
	\index{Q-register names} arbitrary string arguments given
	in place of the usual Q-register name in the \T{G},
	\T{:I}, \T{M}, \T{Q}, \T{U}, and \T{X} commands.  This
	\TECO{} does not.

   \item
	Double-dotted Q-registers are reserved for predefined
	internal uses which are different than those of \ETECO{}.
	They  may be read, but should never be modified.

   \item
	Empty text ranges for the \T{m,nK}, \T{m,nT}, and \T{m,nX}
        commands raise an error in \ETECO{}.  They select null strings
        in this \TECO{}.
  \end{itemize}
