Over the past several weeks I've been working on and off on this. I didn't track the hours but I'm sure that I've spent 80+ hours on the feature. I've tested and retested all known scenarios and it seems to be working as expected.
--
v5: cmd: Implement tab completion for command line entry.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7843
To prevent performance degradation, we will cache the result of GetConsoleOutputCP() after executing every external command.
--
v3: cmd: Use the console output code page to read batch files.
programs/cmd: Factor out code_page when searching for a label.
cmd/tests: Add updated code page test in batch file.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6885
To prevent performance degradation, we will cache the result of GetConsoleOutputCP() after executing every external command.
--
v2: cmd: Use the console output codepage to read batch files.
cmd/tests: Add updated code page test in batch file.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6885
On Sat Apr 19 16:23:57 2025 +0000, eric pouech wrote:
> forgot to say that executable files must be in considered directory
> (eg if a.exe and e.bat exist in current directory, then 'a\<tab\>' shall
> circle around both files); PATH is not used
My code already does this.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7843#note_101459
On Sat Apr 19 16:20:43 2025 +0000, eric pouech wrote:
> maybe. i could also be something that cmd implements in
> CONSOLE_READCONSOLE_CONTROL (using 0x1B in control mask).
That's how I'm handling it in current changes (not yet pushed). But I shouldn't need to, based on ReadConsole behaviour that I see on Windows.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7843#note_101458