use correct printf format spec for UIntPtr

This commit is contained in:
Günter Obiltschnig 2020-01-26 10:32:06 +01:00
parent 958387b6ba
commit 7f071c9171

View File

@ -19,6 +19,7 @@
#include <locale> #include <locale>
#endif #endif
#include <cstdio> #include <cstdio>
#include <cinttypes>
#if defined(_MSC_VER) || defined(__MINGW32__) #if defined(_MSC_VER) || defined(__MINGW32__)
@ -475,13 +476,9 @@ void NumberFormatter::append(std::string& str, const void* ptr)
{ {
char buffer[24]; char buffer[24];
#if defined(POCO_PTR_IS_64_BIT) #if defined(POCO_PTR_IS_64_BIT)
#if defined(POCO_LONG_IS_64_BIT) std::sprintf(buffer, "%016" PRIXPTR, (UIntPtr) ptr);
std::sprintf(buffer, "%016lX", (UIntPtr) ptr);
#else
std::sprintf(buffer, "%016" I64_FMT "X", (UIntPtr) ptr);
#endif
#else #else
std::sprintf(buffer, "%08lX", (UIntPtr) ptr); std::sprintf(buffer, "%08" PRIXPTR, (UIntPtr) ptr);
#endif #endif
str.append(buffer); str.append(buffer);
} }