New Code!
Levee has, after approximately 30 years, been bumped up to a new major version # – Version 4.0, which has been fairly extensively worked over to make it more portable (and as a bonus, I finally got around to implementing tags.)
This release was provoked by Microsoft releasing a port of ssh for Windows 10, which allowed me to telnet in and do some limited sysadmin work on the windows minecraft server in the basement (but not actually edit anything, because there’s no windows editor that works over telnet) and when I thought about porting Levee back over to Windows to fix that wagon I quickly discovered that the huge mass of #ifdef
s that I’d put in for portability weren’t working anymore.
So I went in and moved everything that talks to the OS out of the mainline code and into separate modules for each supported system (and then discovered that Windows 10 tries to emulate a command line shell window over telnet, which means it captures escape sequences in an attempt to do ansi-inside-of-ansi (yes, at Microsoft everything is a vt100. Sigh.), even when you tell the output terminal descriptor that no, really, I don’t want you doing terminal emulation, and then completely bodges the emulation to the point where things like reverse scrolling just bottles everything up. It’s fine on the console, but not so fine across the net. Sigh.
But anyway the portability layers are in, so I could then turn around and report to OS/2 (version 3.5; Warp, I think?) and have the same version of levee running on Unix, Win32, and OS/2, and on ia32, amd64, and ARM architectures. I’ve been running it locally for the past 40 days now without any unpleasant surprises, so it’s not likely it will kill your computer. So if you’re a fan of my vi clone, try it out and see how you like it.