Closed larsbrinkhoff closed 5 years ago
The background for this change is that I updated ITS' DDT to read the full 12-bit characters to do something useful with the meta bit. But now supdup stopped working because DDT gets e.g. ^F as %TXCTL + F. Even though DDT checks for %TOCFI and it's not set.
So what I did here was to change the supdup client to pass all control characters unchanged, except of course ^\ which is quoted.
AIM 644 seems fairly clear with "If %TOFCI is zero, SUPDUP input is restricted to a subset which is essentially ASCII (but 034 must still be encoded as a sequence of two 034's)".
I recall when I first wrote the Unix SUPDUP client I wanted to set %TOFCI because I had modified my VT52 to have a META key and I wanted that to work. I think the code was changed later on to not set %TOFCI because it didn't really generate "all the meaningful codes of the 12-bit character code".
It seems like a sane thing. Did you check what the Java Supdup client does? And what the LISPM Supdup client does?
No, I only checked this one and ITS. I'm too lazy to look into the Java sources. The Lispm file says it sets %TOFCI so I guess it it's free to send bucky bits. Ideally all clients and servers should be tested, but I'll have to rely on volunteers. Or future bug reports.
The supdup client uses the "intelligent terminal protocol" to transfer input control characters as their corresponding upper case character with the control bit set.
I'd argue that this is confusing for applications, unless %TOCFI also is set.
RFC 734 doesn't clearly say what to do. There's this:
But also this: