1.1 --- a/src/printf.c Wed Apr 03 21:22:23 2024 +0200 1.2 +++ b/src/printf.c Fri Apr 12 21:48:12 2024 +0200 1.3 @@ -132,7 +132,7 @@ 1.4 return s; 1.5 } 1.6 1.7 -int cx_sprintf_a(CxAllocator *alloc, char **str, size_t len, const char *fmt, ... ) { 1.8 +int cx_sprintf_a(CxAllocator *alloc, char **str, size_t *len, const char *fmt, ... ) { 1.9 va_list ap; 1.10 va_start(ap, fmt); 1.11 int ret = cx_vsprintf_a(alloc, str, len, fmt, ap); 1.12 @@ -140,11 +140,11 @@ 1.13 return ret; 1.14 } 1.15 1.16 -int cx_vsprintf_a(CxAllocator *alloc, char **str, size_t len, const char *fmt, va_list ap) { 1.17 +int cx_vsprintf_a(CxAllocator *alloc, char **str, size_t *len, const char *fmt, va_list ap) { 1.18 va_list ap2; 1.19 va_copy(ap2, ap); 1.20 - int ret = vsnprintf(*str, len, fmt, ap); 1.21 - if ((unsigned) ret >= len) { 1.22 + int ret = vsnprintf(*str, *len, fmt, ap); 1.23 + if ((unsigned) ret >= *len) { 1.24 unsigned newlen = ret + 1; 1.25 char *ptr = cxRealloc(alloc, *str, newlen); 1.26 if (ptr) { 1.27 @@ -152,6 +152,7 @@ 1.28 if (newret < 0) { 1.29 cxFree(alloc, ptr); 1.30 } else { 1.31 + *len = newlen; 1.32 *str = ptr; 1.33 ret = newret; 1.34 } 1.35 @@ -161,7 +162,7 @@ 1.36 return ret; 1.37 } 1.38 1.39 -int cx_sprintf_sa(CxAllocator *alloc, char *buf, size_t len, char **str, const char *fmt, ... ) { 1.40 +int cx_sprintf_sa(CxAllocator *alloc, char *buf, size_t *len, char **str, const char *fmt, ... ) { 1.41 va_list ap; 1.42 va_start(ap, fmt); 1.43 int ret = cx_vsprintf_sa(alloc, buf, len, str, fmt, ap); 1.44 @@ -169,12 +170,12 @@ 1.45 return ret; 1.46 } 1.47 1.48 -int cx_vsprintf_sa(CxAllocator *alloc, char *buf, size_t len, char **str, const char *fmt, va_list ap) { 1.49 +int cx_vsprintf_sa(CxAllocator *alloc, char *buf, size_t *len, char **str, const char *fmt, va_list ap) { 1.50 va_list ap2; 1.51 va_copy(ap2, ap); 1.52 - int ret = vsnprintf(buf, len, fmt, ap); 1.53 + int ret = vsnprintf(buf, *len, fmt, ap); 1.54 *str = buf; 1.55 - if ((unsigned) ret >= len) { 1.56 + if ((unsigned) ret >= *len) { 1.57 unsigned newlen = ret + 1; 1.58 char *ptr = cxMalloc(alloc, newlen); 1.59 if (ptr) { 1.60 @@ -182,6 +183,7 @@ 1.61 if (newret < 0) { 1.62 cxFree(alloc, ptr); 1.63 } else { 1.64 + *len = newlen; 1.65 *str = ptr; 1.66 ret = newret; 1.67 }