using terminal control codes

Joachim Durchholz joachim.durchholz@REDACTED
Mon Dec 22 14:21:45 CET 2003

Vlad Dumitrescu wrote:
> Hi again,
> now I'm a little more focused :-)
> Did anyone try to compile & use slang with Erlang on Windows? I've been 
> fiddling with what's on Jungerl, but the problem is with the slang 
> driver, of course.

You can't rely on control codes and escape sequences in Windows. On Win 
9x, it depends on whether ANSI.SYS is loaded (and loading it is actually 
a bad idea because malware can reprogram the keyboard mapping, though 
that used to be more of a problem in DOS times).
Not sure how things work out in Win NT/2K/XP. But, in general, doing 
fancy interface stuff "isn't done" in text mode on Windows. In other 
words, whatever you do on Windows, you can expect to run into problems 
because fixing the text interface was never important. Worse, you'll 
probably be quite on your own with any problems.

If I were to port a Unix program with an elaborate text UI to Windows, 
/and/ wanted to be portable across Windows versions, I'd probably look 
for a VT100 emulation, and link the software up with that.

There are several ways to emulate VT100:
- install an X server and run an xterm.
- I think there's a way to make Windows loopback the serial interface, 
without even going through the real hardware; if that's possible, one 
could use any serial terminal program (actually Windows comes with one).
- maybe there's even a direct VT100 emulation available that 
communicates with the application via pipes (for NT/2K/XP) or Windows 
messages (for 9x).
- set up an sshd under Windows (maybe using cygwin, though that's quite 
heavy) and connect PuTTY to localhost.
- grab the terminal emulation of PuTTY (it's open source) and make it a 
standalone VT100 emulation.

When programming for a specific flavor of Windows, I'd go digging in 
MSDN and see whether the control codes are available, before taking the 
VT100 route. If it's possible, that's much less work than the VT100 
emulation route.


More information about the erlang-questions mailing list