Would someone with a real DEC VT terminal be so kind and help settle, once and 
for all, the question about how they behave with respect to line-wrapping, 
exactly? It is something that isn't covered by any standard, nor by any of 
DEC's manuals, and there is a scarcity of information online that is not vague 
repetition of folklore.

There are emulators, of course, but these do not agree with one another to the 
point that they can be trusted, and are probably just copying each other in any 
case. It seems that some ground truth would be welcome, for the benefit of both 
application and emulator writers.

First, the problem: A VT100, when in "auto-wrap" mode, will wrap text from one 
line to the next in a peculiar way, sometimes called "soft-wrap" or "the VT100 
glitch". When the terminal receives a printable character with the cursor in 
the last column, the character is put at that location but the cursor remains 
in place. Instead, the terminal enters a pending wrap state, which causes the 
cursor to wrap before next printable character is displayed. This behaviour is 
widely known.

What isn't widely known are the finer points:

* What control codes will cancel the wrap state?
* What cursor position is reported in the wrap state?
* Do any operations behave differently in the wrap state?
* Is the wrap state saved/restored by the save/restore cursor codes?

and so on. Every emulator programmer seems to have a different answer to these 
questions.

If you have a VT100, VT220 or later model (compatibles like Wyse are also of 
interest) and have a spare moment, I'd be most grateful if you would download 
and run

https://raw.githubusercontent.com/mattiase/wraptest/master/wraptest.c

in that terminal, and send me the resulting output. (Redirect stdout to save 
the report.)
The test program is not comprehensive but would give us a good idea of the 
rules.

Current results, right now only from various emulators, are found in

https://raw.githubusercontent.com/mattiase/wraptest/master/results.txt


Reply via email to