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

@ -52,7 +52,7 @@ static relegated void DieBecauseOfQuota(int rc, const char *message) {
gethostname(hostname, sizeof(hostname));
kprintf("%s on %s pid %d\n", message, hostname, (long)getpid());
PrintBacktraceUsingSymbols(2, 0, GetSymbolTable());
_Exitr(rc);
_Exit(rc);
}
static relegated void OnXcpu(int sig) {
@ -88,7 +88,7 @@ relegated void __oom_hook(size_t request) {
kprintf("\nTHE STRAW THAT BROKE THE CAMEL'S BACK\n");
PrintBacktraceUsingSymbols(2, 0, GetSymbolTable());
PrintSystemMappings(2);
_Exitr(42);
_Exit(42);
}
static textstartup void InstallQuotaHandlers(void) {

View file

@ -120,6 +120,8 @@ static void FixIrregularFds(void) {
}
}
}
// TODO(jart): delete this stuff
if (1) return;
e = errno;
if (!closefrom(3)) return;
errno = e;

View file

@ -81,7 +81,7 @@ void testlib_error_leave(void) {
wontreturn void testlib_abort(void) {
testlib_finish();
_Exitr(MAX(1, MIN(255, g_testlib_failed)));
_Exit(MAX(1, MIN(255, g_testlib_failed)));
}
static void SetupTmpDir(void) {