diff lphobos/std/c/windows/stat.d @ 473:373489eeaf90

Applied downs' lphobos update
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Mon, 04 Aug 2008 19:28:49 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lphobos/std/c/windows/stat.d	Mon Aug 04 19:28:49 2008 +0200
@@ -0,0 +1,49 @@
+
+/// Placed into public domain
+/// Author: Walter Bright
+
+module std.c.windows.stat;
+
+extern (C):
+
+// linux version is in std.c.linux.linux
+
+version (Windows)
+{
+const S_IFMT   = 0xF000;
+const S_IFDIR  = 0x4000;
+const S_IFCHR  = 0x2000;
+const S_IFIFO  = 0x1000;
+const S_IFREG  = 0x8000;
+const S_IREAD  = 0x0100;
+const S_IWRITE = 0x0080;
+const S_IEXEC  = 0x0040;
+const S_IFBLK  = 0x6000;
+const S_IFNAM  = 0x5000;
+
+int S_ISREG(int m)  { return (m & S_IFMT) == S_IFREG; }
+int S_ISBLK(int m)  { return (m & S_IFMT) == S_IFBLK; }
+int S_ISNAM(int m)  { return (m & S_IFMT) == S_IFNAM; }
+int S_ISDIR(int m)  { return (m & S_IFMT) == S_IFDIR; }
+int S_ISCHR(int m)  { return (m & S_IFMT) == S_IFCHR; }
+
+struct struct_stat
+{
+    short st_dev;
+    ushort st_ino;
+    ushort st_mode;
+    short st_nlink;
+    ushort st_uid;
+    ushort st_gid;
+    short st_rdev;
+    short dummy;
+    int st_size;
+    int st_atime;
+    int st_mtime;
+    int st_ctime;
+}
+
+int  stat(char *, struct_stat *);
+int  fstat(int, struct_stat *);
+int  _wstat(wchar *, struct_stat *);
+}