diff options
Diffstat (limited to 'src/kmk/kmkbuiltin/mscfakes.c')
-rw-r--r-- | src/kmk/kmkbuiltin/mscfakes.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/kmk/kmkbuiltin/mscfakes.c b/src/kmk/kmkbuiltin/mscfakes.c index 7d040ff..3f472c9 100644 --- a/src/kmk/kmkbuiltin/mscfakes.c +++ b/src/kmk/kmkbuiltin/mscfakes.c @@ -1,4 +1,4 @@ -/* $Id: mscfakes.c 2484 2011-07-21 19:01:08Z bird $ */ +/* $Id: mscfakes.c 2645 2012-09-09 02:29:23Z bird $ */ /** @file * Fake Unix stuff for MSC. */ @@ -477,13 +477,15 @@ int writev(int fd, const struct iovec *vector, int count) intmax_t strtoimax(const char *nptr, char **endptr, int base) { - return strtol(nptr, endptr, base); /** @todo fix this. */ + if (*nptr != '-') + return _strtoui64(nptr, endptr, base); + return -(intmax_t)_strtoui64(nptr + 1, endptr, base); } uintmax_t strtoumax(const char *nptr, char **endptr, int base) { - return strtoul(nptr, endptr, base); /** @todo fix this. */ + return _strtoui64(nptr, endptr, base); } @@ -532,13 +534,12 @@ int vasprintf(char **strp, const char *fmt, va_list va) } -#undef stat /* * Workaround for directory names with trailing slashes. - * Added by bird reasons stated. */ +#undef stat int -my_other_stat(const char *path, struct stat *st) +bird_w32_stat(const char *path, struct stat *st) { int rc = stat(path, st); if ( rc != 0 @@ -563,6 +564,13 @@ my_other_stat(const char *path, struct stat *st) } } } +#ifdef KMK_PRF + { + int err = errno; + fprintf(stderr, "stat(%s,) -> %d/%d\n", path, rc, errno); + errno = err; + } +#endif return rc; } |