use PRI macros for max portability
This commit is contained in:
parent
0491250ad7
commit
ce8b864293
2
Makefile
2
Makefile
|
@ -1,6 +1,6 @@
|
||||||
.POSIX:
|
.POSIX:
|
||||||
PREFIX = /usr/local
|
PREFIX = /usr/local
|
||||||
CFLAGS = -O2
|
CFLAGS = -O2 -Wall -Wpedantic
|
||||||
|
|
||||||
build: bson2json
|
build: bson2json
|
||||||
bson2json: bson2json.c
|
bson2json: bson2json.c
|
||||||
|
|
15
bson2json.c
15
bson2json.c
|
@ -4,6 +4,7 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <inttypes.h>
|
||||||
|
|
||||||
#define DATABUF_LEN 16
|
#define DATABUF_LEN 16
|
||||||
char DATA_BUFFER[DATABUF_LEN]; // data buffer for funny casts
|
char DATA_BUFFER[DATABUF_LEN]; // data buffer for funny casts
|
||||||
|
@ -151,13 +152,13 @@ print_bson(uint8_t is_array)
|
||||||
break;
|
break;
|
||||||
case 0x07: // objectid
|
case 0x07: // objectid
|
||||||
fread(&DATA_BUFFER, 4, 1, stdin);
|
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);
|
memset(DATA_BUFFER, 0, 8);
|
||||||
fread(&DATA_BUFFER, 5, 1, stdin);
|
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);
|
memset(DATA_BUFFER, 0, 4);
|
||||||
fread(&DATA_BUFFER, 3, 1, stdin);
|
fread(&DATA_BUFFER, 3, 1, stdin);
|
||||||
printf("\"$ObjectId:counter\":%u}", *((uint32_t*)DATA_BUFFER));
|
printf("\"$ObjectId:counter\":%"PRIu32"}", *((uint32_t*)DATA_BUFFER));
|
||||||
size -= 12;
|
size -= 12;
|
||||||
break;
|
break;
|
||||||
case 0x08: // boolean
|
case 0x08: // boolean
|
||||||
|
@ -173,7 +174,7 @@ print_bson(uint8_t is_array)
|
||||||
break;
|
break;
|
||||||
case 0x09: case 0x12: // 64 bit ints (utc datetime and int64)
|
case 0x09: case 0x12: // 64 bit ints (utc datetime and int64)
|
||||||
fread(&DATA_BUFFER, 8, 1, stdin);
|
fread(&DATA_BUFFER, 8, 1, stdin);
|
||||||
printf("%lld", *((int64_t*)DATA_BUFFER));
|
printf("%"PRId64, *((int64_t*)DATA_BUFFER));
|
||||||
size -= 8;
|
size -= 8;
|
||||||
break;
|
break;
|
||||||
case 0x0A: // null
|
case 0x0A: // null
|
||||||
|
@ -192,7 +193,7 @@ print_bson(uint8_t is_array)
|
||||||
json_string_stdin(&size);
|
json_string_stdin(&size);
|
||||||
memset(&DATA_BUFFER, 0, 16);
|
memset(&DATA_BUFFER, 0, 16);
|
||||||
fread(&DATA_BUFFER, 12, 1, stdin);
|
fread(&DATA_BUFFER, 12, 1, stdin);
|
||||||
printf(",\"$DBPointer:pointer\":%llu}", *((uint64_t*)DATA_BUFFER));
|
printf(",\"$DBPointer:pointer\":%"PRIu64"}", *((uint64_t*)DATA_BUFFER));
|
||||||
size -= 16;
|
size -= 16;
|
||||||
break;
|
break;
|
||||||
case 0x0F: // code with scope
|
case 0x0F: // code with scope
|
||||||
|
@ -206,12 +207,12 @@ print_bson(uint8_t is_array)
|
||||||
break;
|
break;
|
||||||
case 0x10: // 32 bit int
|
case 0x10: // 32 bit int
|
||||||
fread(&DATA_BUFFER, 4, 1, stdin);
|
fread(&DATA_BUFFER, 4, 1, stdin);
|
||||||
printf("%d", *((int32_t*)DATA_BUFFER));
|
printf("%"PRId32, *((int32_t*)DATA_BUFFER));
|
||||||
size -= 4;
|
size -= 4;
|
||||||
break;
|
break;
|
||||||
case 0x11: // timestamp (uint64)
|
case 0x11: // timestamp (uint64)
|
||||||
fread(&DATA_BUFFER, 8, 1, stdin);
|
fread(&DATA_BUFFER, 8, 1, stdin);
|
||||||
printf("%llu", *((uint64_t*)DATA_BUFFER));
|
printf("%"PRId64, *((uint64_t*)DATA_BUFFER));
|
||||||
size -= 8;
|
size -= 8;
|
||||||
break;
|
break;
|
||||||
case 0x13: // 128-bit decimal
|
case 0x13: // 128-bit decimal
|
||||||
|
|
Loading…
Reference in New Issue