diff options
author | Christian Göttsche <cgzones@googlemail.com> | 2020-08-21 10:37:29 +0200 |
---|---|---|
committer | Christian Göttsche <cgzones@googlemail.com> | 2020-08-21 10:37:29 +0200 |
commit | 3856bf574b6686418392e6e1ba2ed8525427b241 (patch) | |
tree | 34b50d8a9e8a1eb44160477d955ae30d102d8138 /XAlloc.h | |
parent | 40ac7a88af5a2c7c0d03ca4ddb09cde01f7e80c5 (diff) |
Introduce xAsprintf as checked version of asprintf
Diffstat (limited to 'XAlloc.h')
-rw-r--r-- | XAlloc.h | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -11,12 +11,18 @@ #include <assert.h> #include <stdlib.h> +extern void fail(void); + extern void* xMalloc(size_t size); extern void* xCalloc(size_t nmemb, size_t size); extern void* xRealloc(void* ptr, size_t size); +#undef xAsprintf + +#define xAsprintf(strp, fmt, ...) do { int _r=asprintf(strp, fmt, __VA_ARGS__); if (_r < 0) { fail(); } } while(0) + #define xSnprintf(fmt, len, ...) do { int _l=len; int _n=snprintf(fmt, _l, __VA_ARGS__); if (!(_n > -1 && _n < _l)) { curs_set(1); endwin(); err(1, NULL); } } while(0) #undef xStrdup |