I've just updated my earlier post (here) with a slightly improved version of payload. This new version is also on GitHub, and will be included in the next Catalina release.
When using payload in 'dumb' mode on Windows, payload now maps the keyboard so that programs see the same input that they would see under a terminal emulator operating in vt100 mode.
This makes programs such as Catalyst and the vi text editor (which are designed to work with a vt100 terminal emulator) work better under the Windows Console Host and the Windows Terminal app, which interpret some vt100 escape codes, but do not generate vt100 keyboard output.
There are no changes to 'dumb' mode on Linux, since most Linux terminals already do this.
I just discovered that to use ANSI escape codes in a Console Host window (i.e. what used to be plain old cmd.exe) now requires a registry setting. If you use the Terminal App instead of the Console Host, you don't need to worry about this. but I tend to still use the Console Host because it is both simpler and and faster than the Terminal App.
Attached is a simple batch file to set or clear the appropriate registry setting. It will be included in the next Catalina release. In the meantime, just unzip it into Catalina's bin directory, and then to enable ANSI escape code processing enter: ansi_mode on
or to disable it enter: ansi mode off
To just check the current state enter: ansi_mode
Note that because this is a registry setting, you only have to do it once. I made it possible to turn it on or off in just case it upsets other programs that use the Console Host window.
Turning ANSI mode on makes the new version of payload (which adds 'dumb' terminal support) work properly in a Console Host window. Otherwise ANSI escape codes (e.g. used by Catalyst) will work when using the Terminal App, but not Console Host.
I had a need to rebuild my Windows MinGW installation recently, which upgraded gcc to 15.2.0 (the most recent version). I found a few things in Catalina needed tweaking because this version of gcc raises errors in cases where previous versions did not. This does not affect any existing binaries, and there are no functional changes, so those who use Windows but do not need to rebuild Catalina don't need to do anything.
I have uploaded the tweaks to GitHub, and will include them in the next release.
@RossH said:
I had a need to rebuild my Windows MinGW installation recently, which upgraded gcc to 15.2.0 (the most recent version). I found a few things in Catalina needed tweaking because this version of gcc raises errors in cases where previous versions did not.
An update: The problem is not with Catalina. It is with either the latest version of gcc or MinGW, or with Windows. More investigation required. I hope the problem is with gcc or MinGW, because I can get around those simply by reverting to a version that works. If the problem with with Windows, then it will be a lot more difficult to find, and may be impossible to fix.
Just to repeat - the currently compiled Windows binaries (both on SourceForge or GitHub) are fine.
Comments
See the document BUILD.TXT for instructions on building Catalina on both Windows and Linux. Linux is pretty straightforward.
I've just updated my earlier post (here) with a slightly improved version of payload. This new version is also on GitHub, and will be included in the next Catalina release.
When using payload in 'dumb' mode on Windows, payload now maps the keyboard so that programs see the same input that they would see under a terminal emulator operating in vt100 mode.
This makes programs such as Catalyst and the vi text editor (which are designed to work with a vt100 terminal emulator) work better under the Windows Console Host and the Windows Terminal app, which interpret some vt100 escape codes, but do not generate vt100 keyboard output.
There are no changes to 'dumb' mode on Linux, since most Linux terminals already do this.
Ross.
sigh - Windows gets you every time
I just discovered that to use ANSI escape codes in a Console Host window (i.e. what used to be plain old cmd.exe) now requires a registry setting. If you use the Terminal App instead of the Console Host, you don't need to worry about this. but I tend to still use the Console Host because it is both simpler and and faster than the Terminal App.
Attached is a simple batch file to set or clear the appropriate registry setting. It will be included in the next Catalina release. In the meantime, just unzip it into Catalina's bin directory, and then to enable ANSI escape code processing enter:
ansi_mode onor to disable it enter:
ansi mode offTo just check the current state enter:
ansi_modeNote that because this is a registry setting, you only have to do it once. I made it possible to turn it on or off in just case it upsets other programs that use the Console Host window.
Turning ANSI mode on makes the new version of payload (which adds 'dumb' terminal support) work properly in a Console Host window. Otherwise ANSI escape codes (e.g. used by Catalyst) will work when using the Terminal App, but not Console Host.
Ross.
I've put up a new Patreon video about Catalina's new smart "dumb" mode - see here.
I had a need to rebuild my Windows MinGW installation recently, which upgraded gcc to 15.2.0 (the most recent version). I found a few things in Catalina needed tweaking because this version of gcc raises errors in cases where previous versions did not. This does not affect any existing binaries, and there are no functional changes, so those who use Windows but do not need to rebuild Catalina don't need to do anything.
I have uploaded the tweaks to GitHub, and will include them in the next release.
Ross.
An update: The problem is not with Catalina. It is with either the latest version of gcc or MinGW, or with Windows. More investigation required. I hope the problem is with gcc or MinGW, because I can get around those simply by reverting to a version that works. If the problem with with Windows, then it will be a lot more difficult to find, and may be impossible to fix.
Just to repeat - the currently compiled Windows binaries (both on SourceForge or GitHub) are fine.
Ross.