BUGS - TF problems, and problems in TF scripts.

TF has a number of bugs which are very difficult to remove due to TF's structure. TF also displays many characteristics which some might term bugs but which we consider to be features that TF does not (yet) have. These latter are not included here.

The insertion character is a source of many bugs. For example, it performs its normal expansions on a comment line (.zz), which may result in unwanted warnings and errors. When it follows the control character at the beginning of the line, the resulting expanded text will never match any request or macro although the text it expands to would seem to be valid. When defining a text register, the insertion character cannot be used to in conjunction with the parameter character to choose a variable argument. An illustration of this is

.ic ^
.pc #
.at (reg)
#^^(nreg)
.en (reg)
.an nreg 2
.reg a b c d e

The macro does not expand to the second parameter, but to "#2".

Care must be taken when defining the insertion character. If you use ".ic ^" and "^" (the character is arbitrary here) is already the insertion character, the new insertion character becomes the first character on the next line, except that it will skip any control character and do strange things if the first character is the current insertion character.

Invalid numeric expressions are evaluated to one, and usually no warning is given. In addition, there are some expressions which will produce unexpected results; for example, "=7" may evaluate to either zero or one.

If the end of input is encountered while in the body of a text register definition, you receive an error message that claims an unknown source file. Thus all the source files must be checked for balanced text register definitions.

No character translation (by the translate table) is done to text output by the .sy and .ze requests.

Traps cannot be set with a line number evaluated to one (or less). This means that traps cannot be set for line one (or the virtual line zero) or for any offset from the end of the page that would evaluate to line one or less.

Copyright © 1996, Thinkage Ltd.