* Basic data type definitions, prototypes and standard macros including
* machine dependent variations...
*
- * Copyright (c) The University of Nottingham and Yale University, 1994-1997.
- * All rights reserved. See NOTICE for details and conditions of use etc...
- * Hugs version 1.4, December 1997
+ * The Hugs 98 system is Copyright (c) Mark P Jones, Alastair Reid, the
+ * Yale Haskell Group, and the Oregon Graduate Institute of Science and
+ * Technology, 1994-1999, All rights reserved. It is distributed as
+ * free software under the license in the file "License", which is
+ * included in the distribution.
*
* $RCSfile: prelude.h,v $
- * $Revision: 1.3 $
- * $Date: 1999/02/03 17:08:36 $
+ * $Revision: 1.10 $
+ * $Date: 2000/03/13 14:10:24 $
* ------------------------------------------------------------------------*/
+#define NON_POSIX_SOURCE
+/* AJG: machdep.h needs this, for S_IREAD and S_IFREG in cygwin? */
+
#include "config.h"
#include "options.h"
#include <stdio.h>
* dynamic linking declarations
*-------------------------------------------------------------------------*/
-#if HAVE_PROTOTYPES /* To enable use of prototypes whenever possible */
-#define Args(x) x
-#else
-#define Args(x) ()
-#endif
-
/* local = prefix for locally defined functions */
/* far = prefix for far pointers */
#if DOS
*-------------------------------------------------------------------------*/
#if !DOS && VOID_INT_SIGNALS
-# define sigProto(nm) void nm Args((int))
+# define sigProto(nm) void nm ( int )
# define sigRaise(nm) nm(1)
-# define sigHandler(nm) void nm(sig_arg) int sig_arg;
+# define sigHandler(nm) void nm ( sig_arg ) int sig_arg;
# define sigResume return
#else
-# define sigProto(nm) int nm Args((Void))
+# define sigProto(nm) int nm ( Void )
# define sigRaise(nm) nm()
-# define sigHandler(nm) int nm(Void)
+# define sigHandler(nm) int nm ( Void )
# define sigResume return 1
#endif
/* ToDo: this should probably go in dynamic.h - but then
* storage.h has to include dynamic.h!
*/
-#if HAVE_DLFCN_H /* eg LINUX, SOLARIS, ULTRIX */
+#if HAVE_WINDOWS_H && !defined(__MSDOS__)
+typedef HINSTANCE ObjectFile;
+#elif HAVE_DLFCN_H /* eg LINUX, SOLARIS, ULTRIX */
typedef void* ObjectFile;
#elif HAVE_DL_H /* eg HPUX */
typedef shl_t ObjectFile;
-#elif HAVE_WINDOWS_H && !defined(__MSDOS__)
-typedef HINSTANCE ObjectFile;
#else
#warning GHC file loading not available on this machine
#endif
#endif
#if !defined(HAVE_SNPRINTF)
-extern int snprintf Args((char*, int, const char*, ...));
+extern int snprintf ( char*, int, const char*, ... );
#endif
#if !defined(HAVE_VSNPRINTF)
-extern int vsnprintf Args((char*, int, const char*, va_list));
+extern int vsnprintf ( char*, int, const char*, va_list );
#endif
/*---------------------------------------------------------------------------
#if REDIRECT_OUTPUT
-extern Void hugsPrintf Args((const char *, ...));
-extern Void hugsPutchar Args((int));
-extern Void hugsFlushStdout Args((Void));
-extern Void hugsEnableOutput Args((Bool));
-extern String hugsClearOutputBuffer Args((Void));
+extern Void hugsPrintf ( const char *, ... );
+extern Void hugsPutchar ( int );
+extern Void hugsFlushStdout ( Void );
+extern Void hugsEnableOutput ( Bool );
+extern String hugsClearOutputBuffer ( Void );
-extern Void hugsFFlush Args((FILE*));
-extern Void hugsFPrintf Args((FILE*, const char*, ...));
-extern Void hugsPutc Args((int, FILE*));
+extern Void hugsFFlush ( FILE* );
+extern Void hugsFPrintf ( FILE*, const char*, ... );
+extern Void hugsPutc ( int, FILE* );
#define Printf hugsPrintf
#define Putchar hugsPutchar