summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrrt <unknown>2001-04-02 16:10:33 +0000
committerrrt <unknown>2001-04-02 16:10:33 +0000
commiteb256e9af970565f79a66f8731bdaeddcc96a3a6 (patch)
treeaf3cf1f66b01322f35a7e971af38b6ff9b08731b
parentc69fc1ae9231717e81f268d4d522c1770d9fdb14 (diff)
downloadhaskell-eb256e9af970565f79a66f8731bdaeddcc96a3a6.tar.gz
[project @ 2001-04-02 16:10:32 by rrt]
Remove old mingwin kludgery; using the latest version of mingwin from CVS, things now work.
-rw-r--r--ghc/lib/std/Directory.hsc18
-rw-r--r--ghc/lib/std/cbits/fileSize.c10
-rw-r--r--ghc/lib/std/cbits/getBufferMode.c6
-rw-r--r--ghc/lib/std/cbits/getLock.c6
-rw-r--r--ghc/lib/std/cbits/openFile.c8
-rw-r--r--ghc/lib/std/cbits/seekFile.c14
-rw-r--r--ghc/lib/std/cbits/setBuffering.c6
-rw-r--r--ghc/lib/std/cbits/stgio.h16
8 files changed, 28 insertions, 56 deletions
diff --git a/ghc/lib/std/Directory.hsc b/ghc/lib/std/Directory.hsc
index 8ae71b873a..7bae8e29ed 100644
--- a/ghc/lib/std/Directory.hsc
+++ b/ghc/lib/std/Directory.hsc
@@ -1,5 +1,5 @@
-- -----------------------------------------------------------------------------
--- $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
--
@@ -500,40 +500,24 @@ setPermissions name (Permissions r w e s) = do
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
diff --git a/ghc/lib/std/cbits/fileSize.c b/ghc/lib/std/cbits/fileSize.c
index 86c55d9371..02ad1d46ca 100644
--- a/ghc/lib/std/cbits/fileSize.c
+++ b/ghc/lib/std/cbits/fileSize.c
@@ -1,7 +1,7 @@
/*
* (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
*/
@@ -21,14 +21,14 @@ StgInt
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();
@@ -55,14 +55,14 @@ StgInt
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();
diff --git a/ghc/lib/std/cbits/getBufferMode.c b/ghc/lib/std/cbits/getBufferMode.c
index c80290989a..8ce42f9f42 100644
--- a/ghc/lib/std/cbits/getBufferMode.c
+++ b/ghc/lib/std/cbits/getBufferMode.c
@@ -1,7 +1,7 @@
/*
* (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
*/
@@ -32,11 +32,11 @@ getBufferMode(ptr)
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();
diff --git a/ghc/lib/std/cbits/getLock.c b/ghc/lib/std/cbits/getLock.c
index 143da77aed..7a82fbeb70 100644
--- a/ghc/lib/std/cbits/getLock.c
+++ b/ghc/lib/std/cbits/getLock.c
@@ -1,7 +1,7 @@
/*
* (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
*/
@@ -48,9 +48,9 @@ int for_writing;
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;
diff --git a/ghc/lib/std/cbits/openFile.c b/ghc/lib/std/cbits/openFile.c
index 5ce3340806..e2829ff9ec 100644
--- a/ghc/lib/std/cbits/openFile.c
+++ b/ghc/lib/std/cbits/openFile.c
@@ -1,7 +1,7 @@
/*
* (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
*/
@@ -79,7 +79,7 @@ openFile(StgByteArray file, StgInt how, StgInt binary)
int oflags;
int for_writing;
int created = 0;
- struct Stat sb;
+ struct stat sb;
IOFileObject* fo;
int flags = 0;
@@ -136,7 +136,7 @@ openFile(StgByteArray file, StgInt how, StgInt binary)
} 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";
@@ -193,7 +193,7 @@ openFile(StgByteArray file, StgInt how, StgInt binary)
/* 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();
diff --git a/ghc/lib/std/cbits/seekFile.c b/ghc/lib/std/cbits/seekFile.c
index 16f76187a3..954152ff62 100644
--- a/ghc/lib/std/cbits/seekFile.c
+++ b/ghc/lib/std/cbits/seekFile.c
@@ -1,7 +1,7 @@
/*
* (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
*/
@@ -22,7 +22,7 @@ StgInt
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;
@@ -84,7 +84,7 @@ seekFile(StgForeignPtr ptr, StgInt whence, StgInt size, StgByteArray d)
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();
@@ -114,7 +114,7 @@ StgInt
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;
@@ -154,7 +154,7 @@ seekFile_int64(StgForeignPtr ptr, StgInt whence, StgInt64 d)
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();
@@ -183,10 +183,10 @@ StgInt
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();
diff --git a/ghc/lib/std/cbits/setBuffering.c b/ghc/lib/std/cbits/setBuffering.c
index 6bc943a4ac..14f73d4aa2 100644
--- a/ghc/lib/std/cbits/setBuffering.c
+++ b/ghc/lib/std/cbits/setBuffering.c
@@ -1,7 +1,7 @@
/*
* (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
*/
@@ -38,7 +38,7 @@ setBuffering(StgForeignPtr ptr, StgInt size)
#ifndef mingw32_TARGET_OS
struct termios tio;
#endif
- struct Stat sb;
+ struct stat sb;
/* First off, flush old buffer.. */
if ( (fo->flags & FILEOBJ_WRITE) ) {
@@ -100,7 +100,7 @@ setBuffering(StgForeignPtr ptr, StgInt size)
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();
diff --git a/ghc/lib/std/cbits/stgio.h b/ghc/lib/std/cbits/stgio.h
index 64cf6a2b43..9734281619 100644
--- a/ghc/lib/std/cbits/stgio.h
+++ b/ghc/lib/std/cbits/stgio.h
@@ -1,5 +1,5 @@
/* -----------------------------------------------------------------------------
- * $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
*
@@ -15,19 +15,7 @@
#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);