Browse Source

update libuv to cfa4112950b1f897fda7

v0.7.4-release
Igor Zinkovsky 13 years ago
parent
commit
319580953d
  1. 24
      deps/uv/src/win/fs.c

24
deps/uv/src/win/fs.c

@ -491,14 +491,36 @@ void fs__readdir(uv_fs_t* req, const wchar_t* path, int flags) {
void fs__stat(uv_fs_t* req, const wchar_t* path) {
int result;
unsigned short mode;
result = _wstati64(path, &req->stat);
fs__open(req, path, _O_RDONLY, 0);
if (req->result == -1) {
return;
}
result = _fstati64(req->result, &req->stat);
if (result == -1) {
req->ptr = NULL;
} else {
/*
* VC CRT doesn't properly set S_IFDIR in _fstati64,
* so we set it here if path is a directory.
*/
if (GetFileAttributesW(path) & FILE_ATTRIBUTE_DIRECTORY) {
mode = req->stat.st_mode;
mode &= ~_S_IFMT;
mode |= _S_IFDIR;
req->stat.st_mode = mode;
assert((req->stat.st_mode & _S_IFMT) == _S_IFDIR);
}
req->ptr = &req->stat;
}
_close(req->result);
SET_REQ_RESULT(req, result);
}

Loading…
Cancel
Save