Hi,

I'm in the process of re-implementing the Windows port of ncurses. The current implementation is hard to maintain and flawed due to the attempt to combine the old legacy Windows Console API with the "new" Pseudo-Terminal based (aka ConPTY) implementation. I'm now dropping the support for legacy Windows and have a complete new implementation strictly based on the ConPTY I/O model.

During the course of this development I've incrementally created a devcontainer for Visual Studio Code that works on Linux and MacOS and contains the required toolchains to build ncurses for Windows in various configurations, including Windows on ARM. I named this project "Wincurses", you can find it here: https://github.com/juergenpf/Wincurses

Please note, that the preferred development environment still is Windows, but no longer with MSYS2, but with WSL2 as preferred POSIX environment. Inside WSL2 you use then the devcontainer. The nice thing here is, that the results can be immediately tested on Windows. If you would do that on a native Linux box, you would have to use wine for testing. But wine and Windows Console API doesn't play well together.

The ncurses source I refer to in Wincurses is my fork of Thomas Dickey's ncurses snapshot. You can find that here: https://github.com/juergenpf/ncurses-snapshots

It is contained in Wincurses as a git submodule. There I've a branch conpty that contains the current state of the re-implementation.

Please note, that the ncurses for Windows rewrite as well as Wincurses are both Work-in-Progress. I'm sharing that hoping for reviews and maybe contributions.

Examples for areas of interest:

- For Wincurses: if on WSL2, a set of Wrapper Scripts - similar to the ones that wine uses - to use Microsoft MSC compiler toolchain to build ncurses would be great

- For ncurses ConPTY development: the new implementation completely relies on the xterm mouse protocol supported by ConPTY. Mouse events are detected, but the mouse bytes are not parsed, maybe they come too fast. Would be nice to find someone who can take a second look.

Juergen

Attachment: OpenPGP_0x193414B98650F6D5.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to