#define wxRmDir _wrmdir
#define wxStat _wstat
#define wxStructStat struct _stat
-
-// Microsoft compiler loves underscores, feed them to it
-#elif defined( __VISUALC__ ) \
- || ( defined(__MINGW32__) && !defined(__WINE__) && wxCHECK_W32API_VERSION( 0, 5 ) ) \
- || ( defined(__MWERKS__) && defined(__WXMSW__) ) \
- || ( defined(__DMC__) && defined(__WXMSW__) ) \
- || ( defined(__WATCOMC__) && defined(__WXMSW__) )
-
- // detect compilers which have support for huge files (currently only
- // Digital Mars doesn't)
- #ifndef __WXPALMOS__
- #include "wx/msw/private.h"
- #endif
+#elif defined(__WXMSW__) && !defined(__WXPALMOS__) && \
+ ( \
+ defined(__VISUALC__) || \
+ (defined(__MINGW32__) && !defined(__WINE__) && \
+ wxCHECK_W32API_VERSION(0, 5)) || \
+ defined(__MWERKS__) || \
+ defined(__DMC__) || \
+ defined(__WATCOMC__) || \
+ defined(__BORLANDC__) \
+ )
#undef wxHAS_HUGE_FILES
- #if defined(__MINGW32__)
+
+ // detect compilers which have support for huge files (notice that the
+ // MSVC falls under _INTEGRAL_MAX_BITS >= 64 branch, so we don't have to
+ // test for it explicitly)
+ #if defined(_INTEGRAL_MAX_BITS)
+ #if _INTEGRAL_MAX_BITS >= 64
+ #define wxHAS_HUGE_FILES 1
+ #endif
+ #elif defined(__MINGW32__)
#define wxHAS_HUGE_FILES 1
- #elif defined(__MWERKS__)
- #define wxHAS_HUGE_FILES 0
- #elif defined(__DMC__)
- #define wxHAS_HUGE_FILES 0
- #elif ((_INTEGRAL_MAX_BITS >= 64) || defined(_LARGE_FILES))
+ #elif defined(_LARGE_FILES)
#define wxHAS_HUGE_FILES 1
- #else
- #define wxHAS_HUGE_FILES 0
#endif
+ // other Windows compilers (DMC, Watcom, Metrowerks and Borland) don't have
+ // huge file support (or at least not all functions needed for it by wx)
+ // currently
+
+
// functions
#if defined(__BORLANDC__) || defined(__WATCOMC__)
#define _tell tell
#endif
- #if wxHAS_HUGE_FILES
+ #ifdef wxHAS_HUGE_FILES
typedef wxLongLong_t wxFileOffset;
#define wxFileOffsetFmtSpec wxLongLongFmtSpec
#else
#define wxRead ::read
#define wxWrite ::write
#else
- #define wxRead _read
+ #define wxRead _read
#define wxWrite _write
#endif
#endif
- #if wxHAS_HUGE_FILES
- #define wxSeek _lseeki64
+ #ifdef wxHAS_HUGE_FILES
+ #define wxSeek _lseeki64
#define wxLseek _lseeki64
#define wxTell _telli64
- #else
- #define wxSeek _lseek
+ #else // !wxHAS_HUGE_FILES
+ #define wxSeek _lseek
#define wxLseek _lseek
#define wxTell _tell
- #endif
+ #endif // wxHAS_HUGE_FILES/!wxHAS_HUGE_FILES
+
#define wxFsync _commit
+
#if defined(__WATCOMC__)
#define wxEof ::eof
#else
#if wxUSE_UNICODE
#if wxUSE_UNICODE_MSLU
+ #include "wx/msw/mslu.h"
+
#define wxOpen wxMSLU__wopen
#define wxAccess wxMSLU__waccess
#define wxMkDir wxMSLU__wmkdir
#define wxRmDir wxMSLU__wrmdir
- #if wxHAS_HUGE_FILES
+ #ifdef wxHAS_HUGE_FILES
#define wxStat wxMSLU__wstati64
#else
#define wxStat wxMSLU__wstat
#define wxAccess _waccess
#define wxMkDir _wmkdir
#define wxRmDir _wrmdir
- #if wxHAS_HUGE_FILES
+ #ifdef wxHAS_HUGE_FILES
#define wxStat _wstati64
#else
#define wxStat _wstat
#else
#define wxRmDir _rmdir
#endif
- #if wxHAS_HUGE_FILES
+ #ifdef wxHAS_HUGE_FILES
#define wxStat _stati64
#else
#define wxStat _stat
#endif
- #endif
+ #endif // wxUSE_UNICODE/!wxUSE_UNICODE
// Types: Notice that Watcom is the only compiler to have a wide char
// version of struct stat as well as a wide char stat function variant.
// This was droped since OW 1.4 "for consistency across platforms".
- #if wxHAS_HUGE_FILES
+ #ifdef wxHAS_HUGE_FILES
#if wxUSE_UNICODE && wxONLY_WATCOM_EARLIER_THAN(1,4)
#define wxStructStat struct _wstati64
#else
#endif
// constants (unless already defined by the user code)
- #if !defined(__BORLANDC__) && !defined(__WATCOMC__) && !defined(__WXPALMOS__)
+ #if !defined(__BORLANDC__) && !defined(__WATCOMC__)
#ifndef O_RDONLY
#define O_RDONLY _O_RDONLY
#define O_WRONLY _O_WRONLY
#endif
#endif
- #if wxHAS_HUGE_FILES
+ #ifdef wxHAS_HUGE_FILES
// wxFile is present and supports large files. Currently wxFFile
// doesn't have large file support with any Windows compiler (even
// Win64 ones).
#if wxUSE_FILE
- #define WXFILE_LARGEFILE 1
+ #define wxHAS_LARGE_FILES
#endif
#endif
-
- // It's a private define, undefine it so nobody gets tempted to use it
+
+ // it's a private define, undefine it so that nobody gets tempted to use it
#undef wxHAS_HUGE_FILES
-#else // Unix platforms using configure
+#else // Unix or Windows using unknown compiler, assume POSIX supported
typedef off_t wxFileOffset;
#ifdef _LARGE_FILES
#define wxFileOffsetFmtSpec wxLongLongFmtSpec
BadFileSizeType );
// wxFile is present and supports large files
#ifdef wxUSE_FILE
- #define WXFILE_LARGEFILE
+ #define wxHAS_LARGE_FILES
#endif
// wxFFile is present and supports large files
#if SIZEOF_LONG == 8 || defined HAVE_FSEEKO
- #define WXFFILE_LARGEFILE
+ #define wxHAS_LARGE_FFILES
#endif
#else
#define wxFileOffsetFmtSpec _T("")
#define wxAccess access
#endif
- #define wxHAVE_NATIVE_LSTAT
+ #define wxHAS_NATIVE_LSTAT
#endif // platforms
#ifdef O_BINARY
// if the platform doesn't have symlinks, define wxLstat to be the same as
// wxStat to avoid #ifdefs in the code using it
-#ifndef wxHAVE_NATIVE_LSTAT
+#ifndef wxHAS_NATIVE_LSTAT
#define wxLstat wxStat
#endif