X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=buffer.h;h=24bc590cd0aafa8b35967e425d69cebc2cbcfe4e;hb=1aa018f708c74ad8964fec5801dbd2fdebfd1a03;hp=d58ab174f6b58fdbc36244d2a6581cd2d1c6c8f9;hpb=b1315f7af90c4d8047cf0c8f3c0a00b703676f84;p=apps%2Fpfixtools.git diff --git a/buffer.h b/buffer.h index d58ab17..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 */ /* ~~~~~~~~~ */ /* ________________________________________________________________________ */ /* */ @@ -33,9 +33,10 @@ * 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 */