- Ensures the choice selection characters are not duplicated, this passes one extra Wine test.
- Make the choice selection characters display as uppercase when appropriate.
- Return the errorlevel.
This fixes cmd_winetest hanging on the echo Y | choice /C ABCXYZ /D A /T 2 test.
- Reads the first character from stdin if stdin is not connected to a real console.
- Ensures the timeout never goes negative if there is a problem reading stdin.
This makes our built-in choice command compatible with how choice is implemented on NT5.2+ (it isn't included in Windows XP and below), while retaining compatibility with how it worked in DOS/9x.
- Changes /C and /T to also support the NT syntax.
- Adds the /CS, /D and /M switches.
This makes it easy for JIRA issue CORE-20043 to use this code to create a proper choice.exe