diff options
-rw-r--r-- | src/basic/stdio-util.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/basic/stdio-util.h b/src/basic/stdio-util.h index f4dfa7629..f818a208a 100644 --- a/src/basic/stdio-util.h +++ b/src/basic/stdio-util.h @@ -31,9 +31,11 @@ #include "macro.h" -#define xsprintf(buf, fmt, ...) \ - assert_message_se((size_t) snprintf(buf, ELEMENTSOF(buf), fmt, __VA_ARGS__) < ELEMENTSOF(buf), "xsprintf: " #buf "[] must be big enough") +#define snprintf_ok(buf, len, fmt, ...) \ + ((size_t) snprintf(buf, len, fmt, __VA_ARGS__) < (len)) +#define xsprintf(buf, fmt, ...) \ + assert_message_se(snprintf_ok(buf, ELEMENTSOF(buf), fmt, __VA_ARGS__), "xsprintf: " #buf "[] must be big enough") #define VA_FORMAT_ADVANCE(format, ap) \ do { \ |