From fc2ded5b08e071beed974117c0148781b1acc94a Mon Sep 17 00:00:00 2001 From: Johannes Sixt Date: Mon, 12 Nov 2007 12:52:41 +0100 Subject: Windows: Use a customized struct stat that also has the st_blocks member. Windows's struct stat does not have a st_blocks member. Since we already have our own stat/lstat/fstat implementations, we can just as well use a customized struct stat. This patch introduces just that, and also fills in the st_blocks member. On the other hand, we don't provide members that are never used. Signed-off-by: Johannes Sixt --- compat/mingw.h | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'compat/mingw.h') diff --git a/compat/mingw.h b/compat/mingw.h index 92e9273dd5..624b32d1f4 100644 --- a/compat/mingw.h +++ b/compat/mingw.h @@ -59,8 +59,6 @@ struct itimerval { }; #define ITIMER_REAL 0 -#define st_blocks st_size/512 /* will be cleaned up later */ - /* * trivial stubs */ @@ -161,12 +159,22 @@ int mingw_rename(const char*, const char*); /* Use mingw_lstat() instead of lstat()/stat() and * mingw_fstat() instead of fstat() on Windows. + * struct stat is redefined because it lacks the st_blocks member. */ -int mingw_lstat(const char *file_name, struct stat *buf); -int mingw_fstat(int fd, struct stat *buf); +struct mingw_stat { + unsigned st_mode; + time_t st_mtime, st_atime, st_ctime; + unsigned st_dev, st_ino, st_uid, st_gid; + size_t st_size; + size_t st_blocks; +}; +int mingw_lstat(const char *file_name, struct mingw_stat *buf); +int mingw_fstat(int fd, struct mingw_stat *buf); #define fstat mingw_fstat #define lstat mingw_lstat -#define stat(x,y) mingw_lstat(x,y) +#define stat mingw_stat +static inline int mingw_stat(const char *file_name, struct mingw_stat *buf) +{ return mingw_lstat(file_name, buf); } int mingw_utime(const char *file_name, const struct utimbuf *times); #define utime mingw_utime -- cgit v1.2.3