X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=buffer.h;h=24bc590cd0aafa8b35967e425d69cebc2cbcfe4e;hb=9444dcb2ea8e2b24883d3f5740e28ca20d467ad2;hp=87c0ad204805ed7bd23f2dad54482e08ff9f2131;hpb=42ea2884f2b8a1b7cb940f4e07d22444c6f61cc6;p=apps%2Fpfixtools.git diff --git a/buffer.h b/buffer.h index 87c0ad2..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 MUTT_LIB_LIB_BUFFER_H -#define MUTT_LIB_LIB_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,6 +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); -#endif /* MUTT_LIB_LIB_BUFFER_H */ +ssize_t buffer_read(buffer_t *buf, int fd, ssize_t count); +ssize_t buffer_write(buffer_t *buf, int fd); + +#endif /* PFIXTOOLS_BUFFER_H */