Code

utils/strbuf: Added SDB_STRBUF_STR.
[sysdb.git] / src / include / utils / strbuf.h
index 20cf8706b53038165e73d7892401eb8066e94b59..a9e915537c9d97c03fd94310cfb58b66a3041c34 100644 (file)
@@ -45,6 +45,13 @@ extern "C" {
 
 typedef struct sdb_strbuf sdb_strbuf_t;
 
+/*
+ * SDB_STRBUF_STR:
+ * Return a tuple of a character array and its length representing the content
+ * of the string buffer.
+ */
+#define SDB_STRBUF_STR(buf) sdb_strbuf_string(buf), sdb_strbuf_len(buf)
+
 /*
  * sdb_strbuf_create, sdb_strbuf_destroy:
  * Allocate / deallocate string buffer objects. The initial size of a newly
@@ -74,9 +81,11 @@ sdb_strbuf_destroy(sdb_strbuf_t *strbuf);
  *  - a negative value on error
  */
 ssize_t
-sdb_strbuf_vappend(sdb_strbuf_t *strbuf, const char *fmt, va_list ap);
+sdb_strbuf_vappend(sdb_strbuf_t *strbuf, const char *fmt, va_list ap)
+               __attribute__((format(printf, 2, 0)));
 ssize_t
-sdb_strbuf_append(sdb_strbuf_t *strbuf, const char *fmt, ...);
+sdb_strbuf_append(sdb_strbuf_t *strbuf, const char *fmt, ...)
+               __attribute__((format(printf, 2, 3)));
 
 /*
  * sdb_strbuf_vsprintf, sdb_strbuf_sprintf:
@@ -90,9 +99,11 @@ sdb_strbuf_append(sdb_strbuf_t *strbuf, const char *fmt, ...);
  *  - a negative value on error
  */
 ssize_t
-sdb_strbuf_vsprintf(sdb_strbuf_t *strbuf, const char *fmt, va_list ap);
+sdb_strbuf_vsprintf(sdb_strbuf_t *strbuf, const char *fmt, va_list ap)
+               __attribute__((format(printf, 2, 0)));
 ssize_t
-sdb_strbuf_sprintf(sdb_strbuf_t *strbuf, const char *fmt, ...);
+sdb_strbuf_sprintf(sdb_strbuf_t *strbuf, const char *fmt, ...)
+               __attribute__((format(printf, 2, 3)));
 
 /*
  * sdb_strbuf_memcpy, sdb_strbuf_memappend:
@@ -100,8 +111,8 @@ sdb_strbuf_sprintf(sdb_strbuf_t *strbuf, const char *fmt, ...);
  * interpret any information in the data pointer (including \0 bytes).
  *
  * These functions may be used to handle arbitrary byte arrays. Mixing these
- * function calls with any of the printf-style function works but will usually
- * lead to arbitrary behavior.
+ * function calls with any of the printf-style function works fine but the
+ * entire buffer content should then be treated as arbitrary bytes.
  *
  * Returns:
  *  - the number of bytes written