mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-03 17:58:30 +00:00
Fix bugs and make improvements
- Get clone() working on FreeBSD - Increase some Python build quotas - Add more atomic builtins to chibicc - Fix ASAN poisoning of alloca() memory - Make MODE= mandatory link path tinier - Improve the examples folder a little bit - Start working on some more resource limits - Make the linenoise auto-complete UI as good as GNU readline - Update compile.com, avoiding AVX codegen on non-AVX systems - Make sure empty path to syscalls like opendir raises ENOENT - Correctly polyfill ENOENT vs. ENOTDIR on the New Technology - Port bestline's paredit features to //third_party/linenoise - Remove workarounds for RHEL 5.0 bugs that were fixed in 5.1
This commit is contained in:
parent
c3fb624647
commit
ae638c0850
181 changed files with 2994 additions and 1367 deletions
|
@ -42,6 +42,17 @@ static textwindows bool SubpathExistsThatsNotDirectory(char16_t *path) {
|
|||
return false;
|
||||
}
|
||||
|
||||
textwindows dontinline int64_t __fix_enotdir3(int64_t rc, char16_t *path1,
|
||||
char16_t *path2) {
|
||||
if (rc == -1 && errno == kNtErrorPathNotFound) {
|
||||
if ((!path1 || !SubpathExistsThatsNotDirectory(path1)) &&
|
||||
(!path2 || !SubpathExistsThatsNotDirectory(path2))) {
|
||||
errno = kNtErrorFileNotFound;
|
||||
}
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
|
||||
// WIN32 doesn't distinguish between ENOTDIR and ENOENT. UNIX strictly
|
||||
// requires that a directory component *exists* but is not a directory
|
||||
// whereas WIN32 will return ENOTDIR if a dir label simply isn't found
|
||||
|
@ -54,10 +65,5 @@ static textwindows bool SubpathExistsThatsNotDirectory(char16_t *path) {
|
|||
// dangling symbolic link.
|
||||
//
|
||||
textwindows int64_t __fix_enotdir(int64_t rc, char16_t *path) {
|
||||
if (rc == -1 && errno == kNtErrorPathNotFound) {
|
||||
if (!SubpathExistsThatsNotDirectory(path)) {
|
||||
errno = kNtErrorFileNotFound;
|
||||
}
|
||||
}
|
||||
return rc;
|
||||
return __fix_enotdir3(rc, path, 0);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue