diff options
| author | Eli Zaretskii | 2008-04-05 14:34:28 +0000 |
|---|---|---|
| committer | Eli Zaretskii | 2008-04-05 14:34:28 +0000 |
| commit | 40beb14781f3847dd29d16326ae6d7ccbe07391e (patch) | |
| tree | e9e62d95bc24ae804d8aeda039b6b5852cf7c319 | |
| parent | e3b88685f93b51ca2752fd47ef38e5a75de1f395 (diff) | |
| download | emacs-40beb14781f3847dd29d16326ae6d7ccbe07391e.tar.gz emacs-40beb14781f3847dd29d16326ae6d7ccbe07391e.zip | |
New file.
| -rw-r--r-- | nt/inc/sys/stat.h | 59 | ||||
| -rw-r--r-- | src/ChangeLog | 10 |
2 files changed, 69 insertions, 0 deletions
diff --git a/nt/inc/sys/stat.h b/nt/inc/sys/stat.h new file mode 100644 index 00000000000..eda8147da39 --- /dev/null +++ b/nt/inc/sys/stat.h | |||
| @@ -0,0 +1,59 @@ | |||
| 1 | /* | ||
| 2 | * sys/stat.h supplied with MSVCRT uses too narrow data types for | ||
| 3 | * inode and user/group id, so we replace them with our own. | ||
| 4 | */ | ||
| 5 | |||
| 6 | #ifndef INC_SYS_STAT_H_ | ||
| 7 | #define INC_SYS_STAT_H_ | ||
| 8 | |||
| 9 | #ifdef __MINGW32__ | ||
| 10 | # include <_mingw.h> | ||
| 11 | #else | ||
| 12 | # define __MINGW_NOTHROW | ||
| 13 | #endif | ||
| 14 | |||
| 15 | #include <sys/types.h> | ||
| 16 | #include <time.h> | ||
| 17 | |||
| 18 | #define S_IFMT 0xF000 | ||
| 19 | |||
| 20 | #define S_IFREG 0x8000 | ||
| 21 | #define S_IFDIR 0x4000 | ||
| 22 | #define S_IFBLK 0x3000 | ||
| 23 | #define S_IFCHR 0x2000 | ||
| 24 | #define S_IFIFO 0x1000 | ||
| 25 | |||
| 26 | #define S_IREAD 0x0100 | ||
| 27 | #define S_IWRITE 0x0080 | ||
| 28 | #define S_IEXEC 0x0040 | ||
| 29 | |||
| 30 | #define S_IRUSR S_IREAD | ||
| 31 | #define S_IWUSR S_IWRITE | ||
| 32 | #define S_IXUSR S_IEXEC | ||
| 33 | #define S_IRWXU (S_IREAD | S_IWRITE | S_IEXEC) | ||
| 34 | |||
| 35 | #define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) | ||
| 36 | #define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) | ||
| 37 | #define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) | ||
| 38 | #define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) | ||
| 39 | #define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) | ||
| 40 | |||
| 41 | struct stat { | ||
| 42 | dev_t st_dev; | ||
| 43 | unsigned __int64 st_ino; /* ino_t in sys/types.h is too narrow */ | ||
| 44 | unsigned short st_mode; | ||
| 45 | short st_nlink; | ||
| 46 | int st_uid; | ||
| 47 | int st_gid; | ||
| 48 | dev_t st_rdev; | ||
| 49 | off_t st_size; | ||
| 50 | time_t st_atime; | ||
| 51 | time_t st_mtime; | ||
| 52 | time_t st_ctime; | ||
| 53 | }; | ||
| 54 | |||
| 55 | _CRTIMP int __cdecl __MINGW_NOTHROW fstat (int, struct stat*); | ||
| 56 | _CRTIMP int __cdecl __MINGW_NOTHROW chmod (const char*, int); | ||
| 57 | _CRTIMP int __cdecl __MINGW_NOTHROW stat (const char*, struct stat*); | ||
| 58 | |||
| 59 | #endif /* INC_SYS_STAT_H_ */ | ||
diff --git a/src/ChangeLog b/src/ChangeLog index 932dac65ad6..12f3ebe6eb3 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,13 @@ | |||
| 1 | 2008-04-05 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * dired.c (Ffile_attributes): Support inode numbers wider than 32 | ||
| 4 | bits. Remove ugly WINDOWSNT-specific kludge introduced on | ||
| 5 | 2008-03-14 to force inode be positive. | ||
| 6 | |||
| 7 | * w32.c (sys_chown, stat, fstat): Use S_* constants instead of | ||
| 8 | _S_* ones, since we now use our own sys/stat.h. | ||
| 9 | (stat, fstat): Don't mangle the inode number. | ||
| 10 | |||
| 1 | 2008-04-04 Stefan Monnier <monnier@iro.umontreal.ca> | 11 | 2008-04-04 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 12 | ||
| 3 | * frame.h (struct frame): Give one more bit to `visible' since we use | 13 | * frame.h (struct frame): Give one more bit to `visible' since we use |