This function is similar to strncat, but unlike strncat it allows to concatenate the buffer with a formatted string. The alternative would be to have an intermediate string that is formated first, and then appended via strncat.
Signed-off-by: Silvestrs Timofejevs <silvestrs.timofej...@imgtec.com> --- src/util/u_string.h | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/util/u_string.h b/src/util/u_string.h index e408146..abf4598 100644 --- a/src/util/u_string.h +++ b/src/util/u_string.h @@ -202,7 +202,6 @@ util_strstr(const char *haystack, const char *needle) return NULL; } - #define util_strcasecmp stricmp #define util_strdup _strdup @@ -223,6 +222,21 @@ util_strstr(const char *haystack, const char *needle) #endif +/* Append a formatted string to the buffer, up to the buffer size */ +static inline void +util_strnappend(char *const buf, const int buf_size, const char *fmt, ...) +{ + int max_allowed; + va_list args; + size_t buf_len = strlen(buf); + + max_allowed = buf_size - buf_len; + assert(max_allowed >= 0); + + va_start(args, fmt); + (void) util_vsnprintf(&buf[buf_len], max_allowed, fmt, args); + va_end(args); +} #ifdef __cplusplus } -- 2.7.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev