diff -r ae61523bce20 -r 2f71f4ee247a ucx/cx/printf.h --- a/ucx/cx/printf.h Thu Oct 03 18:52:51 2024 +0200 +++ b/ucx/cx/printf.h Sun Oct 06 18:18:04 2024 +0200 @@ -64,7 +64,7 @@ int cx_fprintf( void *stream, cx_write_func wfc, - char const *fmt, + const char *fmt, ... ); @@ -83,7 +83,7 @@ int cx_vfprintf( void *stream, cx_write_func wfc, - char const *fmt, + const char *fmt, va_list ap ); @@ -101,8 +101,8 @@ */ __attribute__((__nonnull__(1, 2), __format__(printf, 2, 3))) cxmutstr cx_asprintf_a( - CxAllocator const *allocator, - char const *fmt, + const CxAllocator *allocator, + const char *fmt, ... ); @@ -134,8 +134,8 @@ */ __attribute__((__nonnull__)) cxmutstr cx_vasprintf_a( - CxAllocator const *allocator, - char const *fmt, + const CxAllocator *allocator, + const char *fmt, va_list ap ); @@ -168,12 +168,12 @@ /** * An \c sprintf like function which reallocates the string when the buffer is not large enough. * + * The size of the buffer will be updated in \p len when necessary. + * * \note The resulting string is guaranteed to be zero-terminated. - * That means, when the buffer needed to be reallocated, the new size of the buffer will be - * the length returned by this function plus one. * * @param str a pointer to the string buffer - * @param len the current length of the buffer + * @param len a pointer to the length of the buffer * @param fmt the format string * @param ... additional arguments * @return the length of produced string @@ -183,32 +183,32 @@ /** * An \c sprintf like function which reallocates the string when the buffer is not large enough. * + * The size of the buffer will be updated in \p len when necessary. + * * \note The resulting string is guaranteed to be zero-terminated. - * That means, when the buffer needed to be reallocated, the new size of the buffer will be - * the length returned by this function plus one. * * \attention The original buffer MUST have been allocated with the same allocator! * * @param alloc the allocator to use * @param str a pointer to the string buffer - * @param len the current length of the buffer + * @param len a pointer to the length of the buffer * @param fmt the format string * @param ... additional arguments * @return the length of produced string */ -__attribute__((__nonnull__(1, 2, 4), __format__(printf, 4, 5))) -int cx_sprintf_a(CxAllocator *alloc, char **str, size_t len, const char *fmt, ... ); +__attribute__((__nonnull__(1, 2, 3, 4), __format__(printf, 4, 5))) +int cx_sprintf_a(CxAllocator *alloc, char **str, size_t *len, const char *fmt, ... ); /** * An \c sprintf like function which reallocates the string when the buffer is not large enough. * + * The size of the buffer will be updated in \p len when necessary. + * * \note The resulting string is guaranteed to be zero-terminated. - * That means, when the buffer needed to be reallocated, the new size of the buffer will be - * the length returned by this function plus one. * * @param str a pointer to the string buffer - * @param len the current length of the buffer + * @param len a pointer to the length of the buffer * @param fmt the format string * @param ap argument list * @return the length of produced string @@ -218,38 +218,38 @@ /** * An \c sprintf like function which reallocates the string when the buffer is not large enough. * + * The size of the buffer will be updated in \p len when necessary. + * * \note The resulting string is guaranteed to be zero-terminated. - * That means, when the buffer needed to be reallocated, the new size of the buffer will be - * the length returned by this function plus one. * * \attention The original buffer MUST have been allocated with the same allocator! * * @param alloc the allocator to use * @param str a pointer to the string buffer - * @param len the current length of the buffer + * @param len a pointer to the length of the buffer * @param fmt the format string * @param ap argument list * @return the length of produced string */ __attribute__((__nonnull__)) -int cx_vsprintf_a(CxAllocator *alloc, char **str, size_t len, const char *fmt, va_list ap); +int cx_vsprintf_a(CxAllocator *alloc, char **str, size_t *len, const char *fmt, va_list ap); /** * An \c sprintf like function which allocates a new string when the buffer is not large enough. * + * The size of the buffer will be updated in \p len when necessary. + * * The location of the resulting string will \em always be stored to \p str. When the buffer * was sufficiently large, \p buf itself will be stored to the location of \p str. * * \note The resulting string is guaranteed to be zero-terminated. - * That means, when the buffer needed to be reallocated, the new size of the buffer will be - * the length returned by this function plus one. * * \remark When a new string needed to be allocated, the contents of \p buf will be * poisoned after the call, because this function tries to produce the string in \p buf, first. * * @param buf a pointer to the buffer - * @param len the length of the buffer + * @param len a pointer to the length of the buffer * @param str a pointer to the location * @param fmt the format string * @param ... additional arguments @@ -260,42 +260,42 @@ /** * An \c sprintf like function which allocates a new string when the buffer is not large enough. * + * The size of the buffer will be updated in \p len when necessary. + * * The location of the resulting string will \em always be stored to \p str. When the buffer * was sufficiently large, \p buf itself will be stored to the location of \p str. * * \note The resulting string is guaranteed to be zero-terminated. - * That means, when the buffer needed to be reallocated, the new size of the buffer will be - * the length returned by this function plus one. * * \remark When a new string needed to be allocated, the contents of \p buf will be * poisoned after the call, because this function tries to produce the string in \p buf, first. * * @param alloc the allocator to use * @param buf a pointer to the buffer - * @param len the length of the buffer + * @param len a pointer to the length of the buffer * @param str a pointer to the location * @param fmt the format string * @param ... additional arguments * @return the length of produced string */ __attribute__((__nonnull__(1, 2, 4, 5), __format__(printf, 5, 6))) -int cx_sprintf_sa(CxAllocator *alloc, char *buf, size_t len, char **str, const char *fmt, ... ); +int cx_sprintf_sa(CxAllocator *alloc, char *buf, size_t *len, char **str, const char *fmt, ... ); /** * An \c sprintf like function which allocates a new string when the buffer is not large enough. * + * The size of the buffer will be updated in \p len when necessary. + * * The location of the resulting string will \em always be stored to \p str. When the buffer * was sufficiently large, \p buf itself will be stored to the location of \p str. * * \note The resulting string is guaranteed to be zero-terminated. - * That means, when the buffer needed to be reallocated, the new size of the buffer will be - * the length returned by this function plus one. * * \remark When a new string needed to be allocated, the contents of \p buf will be * poisoned after the call, because this function tries to produce the string in \p buf, first. * * @param buf a pointer to the buffer - * @param len the length of the buffer + * @param len a pointer to the length of the buffer * @param str a pointer to the location * @param fmt the format string * @param ap argument list @@ -306,26 +306,26 @@ /** * An \c sprintf like function which allocates a new string when the buffer is not large enough. * + * The size of the buffer will be updated in \p len when necessary. + * * The location of the resulting string will \em always be stored to \p str. When the buffer * was sufficiently large, \p buf itself will be stored to the location of \p str. * * \note The resulting string is guaranteed to be zero-terminated. - * That means, when the buffer needed to be reallocated, the new size of the buffer will be - * the length returned by this function plus one. * * \remark When a new string needed to be allocated, the contents of \p buf will be * poisoned after the call, because this function tries to produce the string in \p buf, first. * * @param alloc the allocator to use * @param buf a pointer to the buffer - * @param len the length of the buffer + * @param len a pointer to the length of the buffer * @param str a pointer to the location * @param fmt the format string * @param ap argument list * @return the length of produced string */ __attribute__((__nonnull__)) -int cx_vsprintf_sa(CxAllocator *alloc, char *buf, size_t len, char **str, const char *fmt, va_list ap); +int cx_vsprintf_sa(CxAllocator *alloc, char *buf, size_t *len, char **str, const char *fmt, va_list ap); #ifdef __cplusplus