2
0
Эх сурвалжийг харах

Match up interrogate standard typedefs better with gcc/msvc standard typedefs

rdb 10 жил өмнө
parent
commit
30a26bc530

+ 1 - 2
dtool/src/dtoolbase/dtoolbase_cc.h

@@ -48,7 +48,6 @@ using namespace std;
 // this maps to public.
 #define PUBLISHED __published
 
-typedef int streamsize;
 typedef int ios_openmode;
 typedef int ios_fmtflags;
 typedef int ios_iostate;
@@ -100,7 +99,7 @@ typedef basic_string<wchar_t> wstring;
 
 #ifndef HAVE_STREAMSIZE
 // Some C++ libraries (Irix) don't define this.
-typedef int streamsize;
+typedef long streamsize;
 #endif
 
 #ifndef HAVE_IOS_TYPEDEFS

+ 13 - 10
dtool/src/parser-inc/iostream

@@ -20,6 +20,19 @@
 #ifndef IOSTREAM_H
 #define IOSTREAM_H
 
+#include <stdtypedefs.h>
+
+#ifdef _WIN64
+typedef long long streamoff;
+typedef long long streamsize;
+#elif defined(_WIN32)
+typedef long streamoff;
+typedef int streamsize;
+#else
+typedef long long streamoff;
+typedef ptrdiff_t streamsize;
+#endif
+
 // We don't care (much) about the actual definition of the various
 // iostream classes, but we do need to know the classnames that are
 // available.
@@ -50,14 +63,6 @@ protected:
 class ios : public ios_base {
 __published:
   typedef long fmtflags;
-#if defined(_WIN64) || !defined(_WIN32)
-  typedef unsigned long long streampos;
-  typedef long long streamoff;
-#else
-  // 32-bit Windows uses 32-bit stream offsets.
-  typedef unsigned long streampos;
-  typedef long streamoff;
-#endif
 
   bool good() const;
   bool eof() const;
@@ -114,6 +119,4 @@ extern istream cin;
 extern ostream cout;
 extern ostream cerr;
 
-typedef long streamoff;
-
 #endif

+ 12 - 7
dtool/src/parser-inc/stdtypedefs.h

@@ -19,25 +19,30 @@
 
 #ifndef STDTYPEDEFS_H
 #define STDTYPEDEFS_H
-#ifndef __APPLE__
-typedef unsigned long size_t;
-typedef long ssize_t;
 typedef int off_t;
-typedef unsigned int time_t;
-typedef int clock_t;
+typedef long time_t;
+typedef long clock_t;
 
 struct FILE;
 
 namespace std {
 }
-#endif
-typedef int ptrdiff_t;
 
 typedef unsigned int uint;
 typedef unsigned long ulong;
 typedef unsigned short ushort;
 typedef unsigned char uchar;
 
+#ifdef _WIN64
+typedef unsigned long long size_t;
+typedef long long ssize_t;
+typedef long long ptrdiff_t;
+#else
+typedef unsigned long size_t;
+typedef long ssize_t;
+typedef long ptrdiff_t;
+#endif
+
 #ifdef __cplusplus
 #define NULL 0L
 #else