Make improvements for Actually Portable Emacs

- Get SIGWINCH working again on the New Technology
- Correctly handle O_NOFOLLOW in open() on Windows
- Implement synthetic umask() functionality on Windows
- Do a better job managing file execute access on Windows
- Fill in `st_uid` and `st_gid` with username hash on Windows
- Munge UNICODE control pictures into control codes on Windows
- Do a better job ensuring Windows console settings are restored
- Introduce KPRINTF_LOG environment variable to log kprintf to a file
This commit is contained in:
Justine Tunney 2023-08-19 06:41:06 -07:00
parent 9c7b81ee0f
commit 965516e313
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
108 changed files with 1126 additions and 807 deletions

View file

@ -53,7 +53,7 @@ textwindows int __wsablock(struct Fd *fd, struct NtOverlapped *overlapped,
abort_errno = EAGAIN;
if (fd->flags & O_NONBLOCK) {
__wsablock_abort(fd->handle, overlapped);
} else if (_check_interrupts(sigops, g_fds.p)) {
} else if (_check_interrupts(sigops)) {
Interrupted:
abort_errno = errno; // EINTR or ECANCELED
__wsablock_abort(fd->handle, overlapped);
@ -62,7 +62,7 @@ textwindows int __wsablock(struct Fd *fd, struct NtOverlapped *overlapped,
i = WSAWaitForMultipleEvents(1, &overlapped->hEvent, true,
__SIG_POLLING_INTERVAL_MS, true);
if (i == kNtWaitFailed || i == kNtWaitTimeout) {
if (_check_interrupts(sigops, g_fds.p)) {
if (_check_interrupts(sigops)) {
goto Interrupted;
}
if (i == kNtWaitFailed) {