use PRI macros for max portability
This commit is contained in:
parent
0491250ad7
commit
ce8b864293
2
Makefile
2
Makefile
|
@ -1,6 +1,6 @@
|
|||
.POSIX:
|
||||
PREFIX = /usr/local
|
||||
CFLAGS = -O2
|
||||
CFLAGS = -O2 -Wall -Wpedantic
|
||||
|
||||
build: bson2json
|
||||
bson2json: bson2json.c
|
||||
|
|
15
bson2json.c
15
bson2json.c
|
@ -4,6 +4,7 @@
|
|||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <inttypes.h>
|
||||
|
||||
#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
|
||||
|
|
Loading…
Reference in New Issue