From 4069f86effdc36ba3f12d120212c8f077b96cdb0 Mon Sep 17 00:00:00 2001
From: Steve Lhomme <robux4@videolabs.io>
Date: Fri, 16 Feb 2024 07:50:03 +0100
Subject: [PATCH 3/4] Define AMFPRI(d|ud|x)64 using the standard C++ format for
C+11 and up
See https://en.cppreference.com/w/cpp/types/integer
When compiled in C, it depends whether it's the Microsoft flavor or the standard C format. Not
whether it's Win32 or not. Clang or GCC use the proper string formats on windows.
amf/public/include/core/Platform.h | 29 ++++++++++++++++++++---------
1 file changed, 20 insertions(+), 9 deletions(-)
@@ -118,12 +118,6 @@ typedef signed int HRESULT;
#endif
#define AMF_NO_VTABLE __declspec(novtable)
- #define AMFPRId64 "I64d"
-
- #define AMFPRIud64 "Iu64d"
-
- #define AMFPRIx64 "I64x"
-
#else // !WIN32 - Linux and Mac
#define AMF_STD_CALL
@@ -138,15 +132,32 @@ typedef signed int HRESULT;
#endif
#define AMF_NO_VTABLE
+#endif // WIN32
+
+#if defined(__cplusplus) && (__cplusplus >= 201103L)
+ #include <cinttypes>
+ #define AMFPRId64 PRId64
+
+ #define AMFPRIud64 PRIu64
+
+ #define AMFPRIx64 PRIx64
+#else
+#if defined(_MSC_VER)
+ #define AMFPRId64 "I64d"
+
+ #define AMFPRIud64 "Iu64d"
+
+ #define AMFPRIx64 "I64x"
+#else
#if !defined(AMFPRId64)
#define AMFPRId64 "lld"
- #define AMFPRIud64 "ulld"
+ #define AMFPRIud64 "ulld"
#define AMFPRIx64 "llx"
#endif
-
-#endif // WIN32
+#endif
+#endif
#define LPRId64 AMF_UNICODE(AMFPRId64)
#define LPRIud64 AMF_UNICODE(AMFPRIud64)
--
2.37.3.windows.1