X-Git-Url: https://unix4lyfe.org/gitweb/darkstat-debian/blobdiff_plain/85d7d6e7b81dff84df8ddc87815ce77b8d82bc07..3c6b3682c70be84db86e70c191016913a9836c31:/str.h diff --git a/str.h b/str.h index 92cb78f..c6cb197 100644 --- a/str.h +++ b/str.h @@ -1,5 +1,5 @@ /* darkstat 3 - * copyright (c) 2001-2011 Emil Mikulic. + * copyright (c) 2001-2014 Emil Mikulic. * * str.h: string buffer with pool-based reallocation * @@ -15,9 +15,24 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#ifndef __DARKSTAT_STR_H +#define __DARKSTAT_STR_H + +#include "cdefs.h" #include #include +#include /* for uint64_t */ + +typedef long long signed int qd; /* as in appendf("%qd") */ +typedef long long unsigned int qu; /* as in appendf("%qu") */ +typedef long long unsigned int lld; /* as in printf("%lld") */ +typedef long long unsigned int llu; /* as in printf("%llu") */ + +_Static_assert(sizeof(qd) == sizeof(int64_t), "qd must be int64_t sized"); +_Static_assert(sizeof(qu) == sizeof(uint64_t), "qu must be uint64_t sized"); +_Static_assert(sizeof(lld) == sizeof(int64_t), "lld must be int64_t sized"); +_Static_assert(sizeof(llu) == sizeof(uint64_t), "llu must be uint64_t sized"); /* Note: the contents are 8-bit clean and not zero terminated! */ @@ -39,13 +54,16 @@ void str_appendstr(struct str *buf, const struct str *s); void str_append(struct str *buf, const char *s); #endif -size_t xvasprintf(char **result, const char *format, va_list va); -size_t xasprintf(char **result, const char *format, ...); -void str_appendf(struct str *buf, const char *format, ...); -void str_vappendf(struct str *s, const char *format, va_list va); +size_t xvasprintf(char **result, const char *format, va_list va) + _printflike_(2, 0); +size_t xasprintf(char **result, const char *format, ...) _printflike_(2, 3); +void str_vappendf(struct str *s, const char *format, va_list va) + _printflike_(2, 0); +void str_appendf(struct str *s, const char *format, ...) _printflike_(2, 3); struct str *length_of_time(const time_t t); ssize_t str_write(const struct str * const buf, const int fd); size_t str_len(const struct str * const buf); +#endif /* __DARKSTAT_STR_H */ /* vim:set ts=3 sw=3 tw=78 expandtab: */