-- -----------------------------------------------------------------------------
--- $Id: Directory.hsc,v 1.9 2001/03/23 13:00:39 rrt Exp $
+-- $Id: Directory.hsc,v 1.10 2001/04/02 16:10:32 rrt Exp $
 --
 -- (c) The University of Glasgow, 1994-2000
 --
 
 withFileStatus :: FilePath -> (Ptr CStat -> IO a) -> IO a
 withFileStatus name f = do
-#ifndef mingw32_TARGET_OS
     allocaBytes (#const sizeof(struct stat)) $ \p ->
-#else
-    allocaBytes (#const sizeof(struct _stati64)) $ \p ->
-#endif
       withUnsafeCString name $ \s -> do
         throwErrnoIfMinus1Retry_ "withFileStatus" (stat s p)
        f p
 
 modificationTime :: Ptr CStat -> IO ClockTime
 modificationTime stat = do
-#ifndef mingw32_TARGET_OS
     mtime <- (#peek struct stat, st_mtime) stat
-#else
-    mtime <- (#peek struct _stati64, st_mtime) stat
-#endif
     return (TOD (toInteger (mtime :: CTime)) 0)
 
 isDirectory :: Ptr CStat -> IO Bool
 isDirectory stat = do
-#ifndef mingw32_TARGET_OS
   mode <- (#peek struct stat, st_mode) stat
-#else
-  mode <- (#peek struct _stati64, st_mode) stat
-#endif
   return (s_ISDIR mode /= 0)
 
 isRegularFile :: Ptr CStat -> IO Bool
 isRegularFile stat = do
-#ifndef mingw32_TARGET_OS
   mode <- (#peek struct stat, st_mode) stat
-#else
-  mode <- (#peek struct _stati64, st_mode) stat
-#endif
   return (s_ISREG mode /= 0)
 
 foreign import ccall unsafe s_ISDIR :: CMode -> Int
 
 /* 
  * (c) The GRASP/AQUA Project, Glasgow University, 1994-1998
  *
- * $Id: fileSize.c,v 1.6 2001/03/01 12:25:33 rrt Exp $
+ * $Id: fileSize.c,v 1.7 2001/04/02 16:10:32 rrt Exp $
  *
  * hClose Runtime Support
  */
 fileSize(StgForeignPtr ptr, StgByteArray result)
 {
     IOFileObject* fo = (IOFileObject*)ptr;
-    struct Stat sb;
+    struct stat sb;
     int rc = 0;
 
     /* Flush buffer in order to get as an accurate size as poss. */
     rc = flushFile(ptr);
     if (rc < 0) return rc;
 
-   while (Fstat(fo->fd, &sb) < 0) {
+   while (fstat(fo->fd, &sb) < 0) {
        /* highly unlikely */
        if (errno != EINTR) {
            cvtErrno();
 fileSize_int64(StgForeignPtr ptr, StgByteArray result)
 {
     IOFileObject* fo = (IOFileObject*)ptr;
-    struct Stat sb;
+    struct stat sb;
     int rc = 0;
 
     /* Flush buffer in order to get as an accurate size as poss. */
     rc = flushFile(ptr);
     if (rc < 0) return rc;
 
-   while (Fstat(fo->fd, &sb) < 0) {
+   while (fstat(fo->fd, &sb) < 0) {
        /* highly unlikely */
        if (errno != EINTR) {
            cvtErrno();
 
 /* 
  * (c) The GRASP/AQUA Project, Glasgow University, 1994-1998
  *
- * $Id: getBufferMode.c,v 1.4 2001/03/01 12:25:33 rrt Exp $
+ * $Id: getBufferMode.c,v 1.5 2001/04/02 16:10:32 rrt Exp $
  *
  * hIs...Buffered Runtime Support
  */
 StgForeignPtr ptr;
 {
     IOFileObject* fo = (IOFileObject*)ptr;
-    struct Stat sb;
+    struct stat sb;
     int fd = fo->fd;
 
     /* Try to find out the file type */
-    while (Fstat(fd, &sb) < 0) {
+    while (fstat(fd, &sb) < 0) {
        /* highly unlikely */
        if (errno != EINTR) {
            cvtErrno();
 
 /* 
  * (c) The GRASP/AQUA Project, Glasgow University, 1994-1998
  *
- * $Id: getLock.c,v 1.8 2001/03/01 12:25:33 rrt Exp $
+ * $Id: getLock.c,v 1.9 2001/04/02 16:10:32 rrt Exp $
  *
  * stdin/stout/stderr Runtime Support
  */
 int exclusive;
 {
     int i;
-    struct Stat sb;
+    struct stat sb;
 
-    while (Fstat(fd, &sb) < 0) {
+    while (fstat(fd, &sb) < 0) {
        if (errno != EINTR) {
 #ifndef _WIN32
            return -1;
 
 /* 
  * (c) The GRASP/AQUA Project, Glasgow University, 1994-1998
  *
- * $Id: openFile.c,v 1.19 2001/03/01 12:25:33 rrt Exp $
+ * $Id: openFile.c,v 1.20 2001/04/02 16:10:33 rrt Exp $
  *
  * openFile Runtime Support
  */
     int oflags;
     int for_writing;
     int created = 0;
-    struct Stat sb;
+    struct stat sb;
     IOFileObject* fo;
     int flags = 0;
 
            } else {
                /* If it is a dangling symlink, break off now, too. */
 #ifndef mingw32_TARGET_OS
-               struct Stat st;
+               struct stat st;
                if ( lstat(file,&st) == 0) {
                   ghc_errtype = ERR_NOSUCHTHING;
                   ghc_errstr = "dangling symlink";
 
     /* Make sure that we aren't looking at a directory */
 
-    while (Fstat(fd, &sb) < 0) {
+    while (fstat(fd, &sb) < 0) {
        /* highly unlikely */
        if (errno != EINTR) {
            cvtErrno();
 
 /* 
  * (c) The GRASP/AQUA Project, Glasgow University, 1994-1998
  *
- * $Id: seekFile.c,v 1.6 2001/03/01 12:25:33 rrt Exp $
+ * $Id: seekFile.c,v 1.7 2001/04/02 16:10:33 rrt Exp $
  *
  * hSeek and hIsSeekable Runtime Support
  */
 seekFile(StgForeignPtr ptr, StgInt whence, StgInt size, StgByteArray d)
 {
     IOFileObject* fo = (IOFileObject*)ptr;
-    struct Stat sb;
+    struct stat sb;
     off_t offset;
     int posn_delta =0;
     int rc = 0;
     if (rc < 0) return rc;
 
     /* Try to find out the file type */
-    while (Fstat(fo->fd, &sb) < 0) {
+    while (fstat(fo->fd, &sb) < 0) {
        /* highly unlikely */
        if (errno != EINTR) {
            cvtErrno();
 seekFile_int64(StgForeignPtr ptr, StgInt whence, StgInt64 d)
 {
     IOFileObject* fo = (IOFileObject*)ptr;
-    struct Stat sb;
+    struct stat sb;
     off_t offset = d;
     int posn_delta =0;
     int rc = 0;
     if (rc < 0) return rc;
 
     /* Try to find out the file type & size for a physical file */
-    while (Fstat(fo->fd, &sb) < 0) {
+    while (fstat(fo->fd, &sb) < 0) {
        /* highly unlikely */
        if (errno != EINTR) {
            cvtErrno();
 seekFileP(StgForeignPtr ptr)
 {
     IOFileObject* fo = (IOFileObject*)ptr;
-    struct Stat sb;
+    struct stat sb;
 
     /* Try to find out the file type */
-    while (Fstat(fo->fd, &sb) < 0) {
+    while (fstat(fo->fd, &sb) < 0) {
        /* highly unlikely */
        if (errno != EINTR) {
            cvtErrno();
 
 /* 
  * (c) The GRASP/AQUA Project, Glasgow University, 1994-1998
  *
- * $Id: setBuffering.c,v 1.11 2001/03/01 12:25:33 rrt Exp $
+ * $Id: setBuffering.c,v 1.12 2001/04/02 16:10:33 rrt Exp $
  *
  * hSetBuffering Runtime Support
  */
 #ifndef mingw32_TARGET_OS
     struct termios tio;
 #endif
-    struct Stat sb;
+    struct stat sb;
 
     /* First off, flush old buffer.. */
     if ( (fo->flags & FILEOBJ_WRITE) ) {
     case SB_BB:
 
 #ifdef HAVE_ST_BLKSIZE
-       while (Fstat(fo->fd, &sb) < 0) {
+       while (fstat(fo->fd, &sb) < 0) {
           /* not very likely.. */
           if ( errno != EINTR ) {
              cvtErrno();
 
 /* -----------------------------------------------------------------------------
- * $Id: stgio.h,v 1.27 2001/03/01 12:25:33 rrt Exp $
+ * $Id: stgio.h,v 1.28 2001/04/02 16:10:33 rrt Exp $
  *
  * (c) The GRASP/AQUA Project, Glasgow University, 1994-1999
  *
 #include "stgerror.h"
 #include "fileObject.h"
 
-/* Fix for mingwin stat */
-#ifdef mingw32_TARGET_OS
-/* Need to #define __MSVCRT__ to get these versions, but in order to do this
-   early enough it's done in Stg.h (included by Rts.h) */
-#define Stat _stati64
-#define Fstat _fstati64
-#else
-#define Stat stat
-#define Fstat fstat
-#endif
-
-/* Function prototypes for the I/O subsytem...
- */
+/* Function prototypes for the I/O subsytem... */
 
 /* closeFile.c */
 StgAddr allocMemory__ (StgInt);