mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-06-30 16:28:30 +00:00
Elevate Windows production worthiness
- SQLite file locking now works on Windows - SQLite will now use fdatasync() on non-Apple platforms - Fix Ctrl-C handler on Windows to not crash with TLS - Signals now work in multithreaded apps on Windows - fcntl() will now accurately report EINVAL errors - fcntl() now has excellent --strace logging - Token bucket replenish now go 100x faster - *NSYNC cancellations now work on Windows - Support closefrom() on NetBSD
This commit is contained in:
parent
d38700687a
commit
997ce29ddc
95 changed files with 959 additions and 418 deletions
|
@ -48,7 +48,7 @@
|
|||
#define STATE_QUOTED_VAR 4
|
||||
#define STATE_WHITESPACE 5
|
||||
|
||||
#define READ24LE(s) READ32LE(s "\0")
|
||||
#define READ24(s) READ32LE(s "\0")
|
||||
|
||||
struct Env {
|
||||
char *s;
|
||||
|
@ -333,16 +333,16 @@ static int Test(void) {
|
|||
if (n == 4) {
|
||||
w = READ32LE(args[2]) & 0x00ffffff;
|
||||
if ((w & 65535) == READ16LE("=")) return !!strcmp(args[1], args[3]);
|
||||
if (w == READ24LE("==")) return !!strcmp(args[1], args[3]);
|
||||
if (w == READ24LE("!=")) return !strcmp(args[1], args[3]);
|
||||
if (w == READ24("==")) return !!strcmp(args[1], args[3]);
|
||||
if (w == READ24("!=")) return !strcmp(args[1], args[3]);
|
||||
} else if (n == 3) {
|
||||
w = READ32LE(args[1]) & 0x00ffffff;
|
||||
if (w == READ24LE("-n")) return !(strlen(args[2]) > 0);
|
||||
if (w == READ24LE("-z")) return !(strlen(args[2]) == 0);
|
||||
if (w == READ24LE("-e")) return !!stat(args[2], &st);
|
||||
if (w == READ24LE("-f")) return !stat(args[2], &st) && S_ISREG(st.st_mode);
|
||||
if (w == READ24LE("-d")) return !stat(args[2], &st) && S_ISDIR(st.st_mode);
|
||||
if (w == READ24LE("-h")) return !stat(args[2], &st) && S_ISLNK(st.st_mode);
|
||||
if (w == READ24("-n")) return !(strlen(args[2]) > 0);
|
||||
if (w == READ24("-z")) return !(strlen(args[2]) == 0);
|
||||
if (w == READ24("-e")) return !!stat(args[2], &st);
|
||||
if (w == READ24("-f")) return !(!stat(args[2], &st) && S_ISREG(st.st_mode));
|
||||
if (w == READ24("-d")) return !(!stat(args[2], &st) && S_ISDIR(st.st_mode));
|
||||
if (w == READ24("-h")) return !(!stat(args[2], &st) && S_ISLNK(st.st_mode));
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue