Rev 16 | Rev 19 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 16 | Rev 18 | ||
|---|---|---|---|
| Line 37... | Line 37... | ||
| 37 | #define localtime(t) sane_localtime ((t)) // STFU Microsoft | 37 | #define localtime(t) sane_localtime ((t)) // STFU Microsoft | 
| 38 | static inline char *sane_asctime (const struct tm *tm_time) { thread_local static char asctimestr[64]; if (asctime_s (asctimestr, sizeof (asctimestr), tm_time) != 0) return (NULL); return (asctimestr); } // non-complaining asctime() implementation for MSVC. Uses TLS. | 38 | static inline char *sane_asctime (const struct tm *tm_time) { thread_local static char asctimestr[64]; if (asctime_s (asctimestr, sizeof (asctimestr), tm_time) != 0) return (NULL); return (asctimestr); } // non-complaining asctime() implementation for MSVC. Uses TLS. | 
| 39 | #define asctime(t) sane_asctime ((t)) // STFU Microsoft | 39 | #define asctime(t) sane_asctime ((t)) // STFU Microsoft | 
| 40 | #define S_IFIFO 0x1000 | 40 | #define S_IFIFO 0x1000 | 
| 41 | #define S_IFLNK 0xa000 | 41 | #define S_IFLNK 0xa000 | 
| 42 | #define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) | 42 | #define S_ISDIR(m)  (((m) & S_IFMT) == S_IFDIR) | 
| 43 | #define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) | 43 | #define S_ISREG(m)  (((m) & S_IFMT) == S_IFREG) | 
| 44 | #define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) | 44 | #define S_ISLNK(m)  (((m) & S_IFMT) == S_IFLNK) | 
| - | 45 | #define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) | |
| 45 | #define strdup(s) _strdup ((s)) | 46 | #define strdup(s) _strdup ((s)) | 
| 46 | #define strcasecmp(s1,s2) _stricmp ((s1), (s2)) | 47 | #define strcasecmp(s1,s2) _stricmp ((s1), (s2)) | 
| 47 | #define strtok_r(s,delim,ctx) strtok_s ((s), (delim), (ctx)) | 48 | #define strtok_r(s,delim,ctx) strtok_s ((s), (delim), (ctx)) | 
| 48 | #define mkdir(p,m) _mkdir ((p)) | 49 | #define mkdir(p,m) _mkdir ((p)) | 
| 49 | #define utimbuf __utimbuf32 | 50 | #define utimbuf __utimbuf32 |