From: Andrey Rys Date: Thu, 21 Mar 2019 09:27:16 +0000 (+0700) Subject: fix mhexdump machine detection. X-Git-Url: https://jxself.org/git/?p=tfcrypt.git;a=commitdiff_plain;h=347d23692d3a723b69b022d0e2f6cd9ecb388d1c fix mhexdump machine detection. --- diff --git a/VERSION b/VERSION index b6a7d89..98d9bcb 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -16 +17 diff --git a/mhexdump.c b/mhexdump.c index 5d927f7..f8e1300 100644 --- a/mhexdump.c +++ b/mhexdump.c @@ -33,6 +33,18 @@ #include #include +#undef MACHINE_16BIT +#undef MACHINE_32BIT +#undef MACHINE_64BIT + +#if UINTPTR_MAX == UINT32_MAX +#define MACHINE_32BIT +#elif UINTPTR_MAX == UINT64_MAX +#define MACHINE_64BIT +#elif UINTPTR_MAX == UINT16_MAX +#define MACHINE_16BIT +#endif + struct mhexdump_args { const void *data; size_t szdata; @@ -45,12 +57,17 @@ struct mhexdump_args { int closef; }; -#if SIZE_MAX == 0xffffffff +#if defined(MACHINE_32BIT) #define ADDRFMT "%08x: " #define paddr (mha->addaddr == 2 ? (uint32_t)P+(x*mha->group) : (x*mha->group)) -#else +#elif defined(MACHINE_64BIT) #define ADDRFMT "%016lx: " #define paddr (mha->addaddr == 2 ? (uint64_t)P+(x*mha->group) : (x*mha->group)) +#elif defined(MACHINE_16BIT) +#define ADDRFMT "%04x: " +#define paddr (mha->addaddr == 2 ? (uint16_t)P+(x*mha->group) : (x*mha->group)) +#else +#error No machine word size detected! #endif #define BYTEOUT ((unsigned char)P[y+(x*mha->group)])