Fixed SDL_PRI?64 for 64-bit Linux.

64-bit Linux uses a "long" instead of "long long" for 64-bit ints.

Added a special-case this so SDL_PRI?64 doesn't trigger compiler warnings
when used with SDL's 64-bit datatypes on 64-bit Linux.
This commit is contained in:
Ryan C. Gordon 2015-03-02 21:36:45 -05:00
parent d34d608e59
commit 483ea8b7b0
1 changed files with 8 additions and 0 deletions

View File

@ -173,6 +173,8 @@ typedef uint64_t Uint64;
#define SDL_PRIs64 PRIs64 #define SDL_PRIs64 PRIs64
#elif defined(__WIN32__) #elif defined(__WIN32__)
#define SDL_PRIs64 "I64d" #define SDL_PRIs64 "I64d"
#elif defined(__LINUX__) && defined(__LP64__)
#define SDL_PRIs64 "ld"
#else #else
#define SDL_PRIs64 "lld" #define SDL_PRIs64 "lld"
#endif #endif
@ -182,6 +184,8 @@ typedef uint64_t Uint64;
#define SDL_PRIu64 PRIu64 #define SDL_PRIu64 PRIu64
#elif defined(__WIN32__) #elif defined(__WIN32__)
#define SDL_PRIu64 "I64u" #define SDL_PRIu64 "I64u"
#elif defined(__LINUX__) && defined(__LP64__)
#define SDL_PRIu64 "lu"
#else #else
#define SDL_PRIu64 "llu" #define SDL_PRIu64 "llu"
#endif #endif
@ -191,6 +195,8 @@ typedef uint64_t Uint64;
#define SDL_PRIx64 PRIx64 #define SDL_PRIx64 PRIx64
#elif defined(__WIN32__) #elif defined(__WIN32__)
#define SDL_PRIx64 "I64x" #define SDL_PRIx64 "I64x"
#elif defined(__LINUX__) && defined(__LP64__)
#define SDL_PRIx64 "lx"
#else #else
#define SDL_PRIx64 "llx" #define SDL_PRIx64 "llx"
#endif #endif
@ -200,6 +206,8 @@ typedef uint64_t Uint64;
#define SDL_PRIX64 PRIX64 #define SDL_PRIX64 PRIX64
#elif defined(__WIN32__) #elif defined(__WIN32__)
#define SDL_PRIX64 "I64X" #define SDL_PRIX64 "I64X"
#elif defined(__LINUX__) && defined(__LP64__)
#define SDL_PRIX64 "lX"
#else #else
#define SDL_PRIX64 "llX" #define SDL_PRIX64 "llX"
#endif #endif