From ce8b86429358d5eb2fb76c9784d7c6fb34b06fc9 Mon Sep 17 00:00:00 2001 From: yosh Date: Sat, 27 Jan 2024 20:24:51 -0500 Subject: [PATCH] use PRI macros for max portability --- Makefile | 2 +- bson2json.c | 15 ++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index 549d3e2..1f409cb 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ .POSIX: PREFIX = /usr/local -CFLAGS = -O2 +CFLAGS = -O2 -Wall -Wpedantic build: bson2json bson2json: bson2json.c diff --git a/bson2json.c b/bson2json.c index 15853a2..15bf305 100644 --- a/bson2json.c +++ b/bson2json.c @@ -4,6 +4,7 @@ #include #include #include +#include #define DATABUF_LEN 16 char DATA_BUFFER[DATABUF_LEN]; // data buffer for funny casts @@ -151,13 +152,13 @@ print_bson(uint8_t is_array) break; case 0x07: // objectid fread(&DATA_BUFFER, 4, 1, stdin); - printf("{\"$ObjectId:timestamp\":%u,", *((uint32_t*)DATA_BUFFER)); + printf("{\"$ObjectId:timestamp\":%"PRIu32",", *((uint32_t*)DATA_BUFFER)); memset(DATA_BUFFER, 0, 8); fread(&DATA_BUFFER, 5, 1, stdin); - printf("\"$ObjectId:rand\":%llu,", *((uint64_t*)DATA_BUFFER)); + printf("\"$ObjectId:rand\":%"PRIu64",", *((uint64_t*)DATA_BUFFER)); memset(DATA_BUFFER, 0, 4); fread(&DATA_BUFFER, 3, 1, stdin); - printf("\"$ObjectId:counter\":%u}", *((uint32_t*)DATA_BUFFER)); + printf("\"$ObjectId:counter\":%"PRIu32"}", *((uint32_t*)DATA_BUFFER)); size -= 12; break; case 0x08: // boolean @@ -173,7 +174,7 @@ print_bson(uint8_t is_array) break; case 0x09: case 0x12: // 64 bit ints (utc datetime and int64) fread(&DATA_BUFFER, 8, 1, stdin); - printf("%lld", *((int64_t*)DATA_BUFFER)); + printf("%"PRId64, *((int64_t*)DATA_BUFFER)); size -= 8; break; case 0x0A: // null @@ -192,7 +193,7 @@ print_bson(uint8_t is_array) json_string_stdin(&size); memset(&DATA_BUFFER, 0, 16); fread(&DATA_BUFFER, 12, 1, stdin); - printf(",\"$DBPointer:pointer\":%llu}", *((uint64_t*)DATA_BUFFER)); + printf(",\"$DBPointer:pointer\":%"PRIu64"}", *((uint64_t*)DATA_BUFFER)); size -= 16; break; case 0x0F: // code with scope @@ -206,12 +207,12 @@ print_bson(uint8_t is_array) break; case 0x10: // 32 bit int fread(&DATA_BUFFER, 4, 1, stdin); - printf("%d", *((int32_t*)DATA_BUFFER)); + printf("%"PRId32, *((int32_t*)DATA_BUFFER)); size -= 4; break; case 0x11: // timestamp (uint64) fread(&DATA_BUFFER, 8, 1, stdin); - printf("%llu", *((uint64_t*)DATA_BUFFER)); + printf("%"PRId64, *((uint64_t*)DATA_BUFFER)); size -= 8; break; case 0x13: // 128-bit decimal