mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-22 16:33:02 -05:00
tst: passthrough-fuse: gix cygwin build
This commit is contained in:
parent
41838627c0
commit
61935e4671
@ -41,8 +41,8 @@
|
||||
#define fi_fh(fi, MASK) ((fi)->fh & (MASK))
|
||||
#define fi_setfh(fi, FH, MASK) ((fi)->fh = (intptr_t)(FH) | (MASK))
|
||||
#define fi_fd(fi) (fi_fh(fi, fi_dirbit) ? \
|
||||
dirfd((DIR *)fi_fh(fi, ~fi_dirbit)) : (int)fi_fh(fi, ~fi_dirbit))
|
||||
#define fi_dirp(fi) ((DIR *)fi_fh(fi, ~fi_dirbit))
|
||||
dirfd((DIR *)(intptr_t)fi_fh(fi, ~fi_dirbit)) : (int)fi_fh(fi, ~fi_dirbit))
|
||||
#define fi_dirp(fi) ((DIR *)(intptr_t)fi_fh(fi, ~fi_dirbit))
|
||||
#define fi_setfd(fi, fd) (fi_setfh(fi, fd, 0))
|
||||
#define fi_setdirp(fi, dirp) (fi_setfh(fi, dirp, fi_dirbit))
|
||||
|
||||
@ -255,7 +255,7 @@ static int ptfs_utimens(const char *path, const struct fuse_timespec tv[2])
|
||||
{
|
||||
ptfs_impl_fullpath(path);
|
||||
|
||||
return -1 != utimensat(AT_FDCWD, path, tv) ? 0 : -errno;
|
||||
return -1 != utimensat(AT_FDCWD, path, tv, AT_SYMLINK_NOFOLLOW) ? 0 : -errno;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -334,7 +334,7 @@ int truncate(const char *path, fuse_off_t size)
|
||||
int utime(const char *path, const struct fuse_utimbuf *timbuf)
|
||||
{
|
||||
if (0 == timbuf)
|
||||
return utimensat(AT_FDCWD, path, 0);
|
||||
return utimensat(AT_FDCWD, path, 0, AT_SYMLINK_NOFOLLOW);
|
||||
else
|
||||
{
|
||||
struct fuse_timespec times[2];
|
||||
@ -342,13 +342,14 @@ int utime(const char *path, const struct fuse_utimbuf *timbuf)
|
||||
times[0].tv_nsec = 0;
|
||||
times[1].tv_sec = timbuf->modtime;
|
||||
times[1].tv_nsec = 0;
|
||||
return utimensat(AT_FDCWD, path, times);
|
||||
return utimensat(AT_FDCWD, path, times, AT_SYMLINK_NOFOLLOW);
|
||||
}
|
||||
}
|
||||
|
||||
int utimensat(int dirfd, const char *path, const struct fuse_timespec times[2])
|
||||
int utimensat(int dirfd, const char *path, const struct fuse_timespec times[2], int flag)
|
||||
{
|
||||
/* ignore dirfd and assume that it is always AT_FDCWD */
|
||||
/* ignore flag and assume that it is always AT_SYMLINK_NOFOLLOW */
|
||||
|
||||
HANDLE h = CreateFileA(path,
|
||||
FILE_WRITE_ATTRIBUTES, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
|
||||
|
@ -28,6 +28,7 @@
|
||||
|
||||
#define PATH_MAX 1024
|
||||
#define AT_FDCWD -2
|
||||
#define AT_SYMLINK_NOFOLLOW 2
|
||||
|
||||
typedef struct _DIR DIR;
|
||||
struct dirent
|
||||
@ -54,7 +55,7 @@ int lchown(const char *path, fuse_uid_t uid, fuse_gid_t gid);
|
||||
int lchflags(const char *path, uint32_t flags);
|
||||
int truncate(const char *path, fuse_off_t size);
|
||||
int utime(const char *path, const struct fuse_utimbuf *timbuf);
|
||||
int utimensat(int dirfd, const char *path, const struct fuse_timespec times[2]);
|
||||
int utimensat(int dirfd, const char *path, const struct fuse_timespec times[2], int flag);
|
||||
int setcrtime(const char *path, const struct fuse_timespec *tv);
|
||||
int unlink(const char *path);
|
||||
int rename(const char *oldpath, const char *newpath);
|
||||
|
Loading…
x
Reference in New Issue
Block a user