diff options
-rw-r--r-- | archive.h | 9 | ||||
-rw-r--r-- | concat.c | 4 | ||||
-rw-r--r-- | export.c | 4 |
3 files changed, 11 insertions, 6 deletions
diff --git a/archive.h b/archive.h index 3605a4b..0b8b6d8 100644 --- a/archive.h +++ b/archive.h @@ -25,6 +25,7 @@ * covered work. */ +#include <inttypes.h> #include <stdbool.h> #include <stdint.h> #include <stdio.h> @@ -54,6 +55,14 @@ extern const char *baseTitle; extern const char *baseMailto; extern const char *baseSubscribe; +static inline struct U32 { + char s[sizeof("4294967295")]; +} u32(uint32_t u) { + struct U32 buf; + snprintf(buf.s, sizeof(buf.s), "%" PRIu32, u); + return buf; +} + static inline struct ISO8601 { char s[sizeof("0000-00-00T00:00:00Z")]; } iso8601(time_t time) { diff --git a/concat.c b/concat.c index c59a828..bd41913 100644 --- a/concat.c +++ b/concat.c @@ -82,10 +82,8 @@ void concatData( } static char *uidPath(uint32_t uid, const char *type) { - char str[32]; - snprintf(str, sizeof(str), "%" PRIu32, uid); struct Variable vars[] = { - { "uid", str }, + { "uid", u32(uid).s }, { "type", type }, {0}, }; diff --git a/export.c b/export.c index 2b579c3..d4039e2 100644 --- a/export.c +++ b/export.c @@ -40,10 +40,8 @@ #include "imap.h" static char *exportPath(uint32_t uid, const char *type) { - char str[32]; - snprintf(str, sizeof(str), "%" PRIu32, uid); struct Variable vars[] = { - { "uid", str }, + { "uid", u32(uid).s }, { "type", type }, {0}, }; |