From 3856bf574b6686418392e6e1ba2ed8525427b241 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= Date: Fri, 21 Aug 2020 10:37:29 +0200 Subject: Introduce xAsprintf as checked version of asprintf --- XAlloc.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'XAlloc.h') diff --git a/XAlloc.h b/XAlloc.h index 97a1c0d0..2d464051 100644 --- a/XAlloc.h +++ b/XAlloc.h @@ -11,12 +11,18 @@ #include #include +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 -- cgit v1.2.3