% -*-LaTeX-*- % 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}