X-Git-Url: http://git.madism.org/?a=blobdiff_plain;ds=sidebyside;f=buffer.h;h=24bc590cd0aafa8b35967e425d69cebc2cbcfe4e;hb=063fa644df8a1bc2f0d76027dae5d7d0d8ce4f47;hp=d0e1c578c1a70353e4129436f82c5cfe157ace79;hpb=b5fcb83a2555a4aac4d298e7ed5487b3416ef6f6;p=apps%2Fpfixtools.git diff --git a/buffer.h b/buffer.h index d0e1c57..24bc590 100644 --- a/buffer.h +++ b/buffer.h @@ -1,5 +1,5 @@ /******************************************************************************/ -/* postlicyd: a postfix policy daemon with a lot of features */ +/* pfixtools: a collection of postfix related tools */ /* ~~~~~~~~~ */ /* ________________________________________________________________________ */ /* */ @@ -30,12 +30,13 @@ /******************************************************************************/ /* - * Copyright © 2006 Pierre Habouzit + * Copyright © 2006-2007 Pierre Habouzit */ -#ifndef POSTLICYD_BUFFER_H -#define POSTLICYD_BUFFER_H +#ifndef PFIXTOOLS_BUFFER_H +#define PFIXTOOLS_BUFFER_H +#include #include "mem.h" #include "str.h" @@ -45,6 +46,8 @@ typedef struct buffer_t { ssize_t size; } buffer_t; +#define BUFFER_INIT {NULL, 0, 0} + DO_INIT(buffer_t, buffer); static inline void buffer_wipe(buffer_t *buf) { p_delete(&buf->data); @@ -100,8 +103,23 @@ static inline void buffer_addch(buffer_t *buf, int c) { buffer_extendch(buf, 1, c); } +__attribute__((format(printf,2,0))) +ssize_t buffer_addvf(buffer_t *, const char *fmt, va_list); + +static inline __attribute__((format(printf,2,3))) +ssize_t buffer_addf(buffer_t *buf, const char *fmt, ...) +{ + ssize_t res; + va_list args; + va_start(args, fmt); + res = buffer_addvf(buf, fmt, args); + va_end(args); + return res; +} + void buffer_consume(buffer_t *buf, ssize_t len); ssize_t buffer_read(buffer_t *buf, int fd, ssize_t count); +ssize_t buffer_write(buffer_t *buf, int fd); -#endif /* POSTLICYD_BUFFER_H */ +#endif /* PFIXTOOLS_BUFFER_H */