diff options
author | Zubin Duggal <zubin.duggal@gmail.com> | 2022-07-22 17:24:05 +0530 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2022-07-25 09:45:45 -0400 |
commit | 3bbde95769aa2986adb8bef7d718aa0e8731f9fd (patch) | |
tree | 216bd9b8aaeecee6cca21df8ac4148bf252c395d /docs | |
parent | b77d95f8a4b0f8a5025dbd5036c17ecf85ca3ab2 (diff) | |
download | haskell-3bbde95769aa2986adb8bef7d718aa0e8731f9fd.tar.gz |
Fix #21889, GHCi misbehaves with Ctrl-C on Windows
On Windows, we create multiple levels of wrappers for GHCi which ultimately
execute ghc --interactive. In order to handle console events properly, each of
these wrappers must call FreeConsole() in order to hand off event processing to
the child process. See #14150.
In addition to this, FreeConsole must only be called from interactive processes (#13411).
This commit makes two changes to fix this situation:
1. The hadrian wrappers generated using `hadrian/bindist/cwrappers/version-wrapper.c` call `FreeConsole`
if the CPP flag INTERACTIVE_PROCESS is set, which is set when we are generating a wrapper for GHCi.
2. The GHCi wrapper in `driver/ghci/` calls the `ghc-$VER.exe` executable which is not wrapped rather
than calling `ghc.exe` is is wrapped on windows (and usually non-interactive, so can't call `FreeConsole`:
Before:
ghci-$VER.exe calls ghci.exe which calls ghc.exe which calls ghc-$VER.exe
After:
ghci-$VER.exe calls ghci.exe which calls ghc-$VER.exe
Diffstat (limited to 'docs')
0 files changed, 0 insertions, 0 deletions