/******************************************************************************/
-/* postlicyd: a postfix policy daemon with a lot of features */
+/* pfixtools: a collection of postfix related tools */
/* ~~~~~~~~~ */
/* ________________________________________________________________________ */
/* */
/******************************************************************************/
/*
- * 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 "mem.h"
#include "str.h"
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);
DO_NEW(buffer_t, buffer);
DO_DELETE(buffer_t, buffer);
+static inline void buffer_reset(buffer_t *buf) {
+ buf->data[buf->len = 0] = '\0';
+}
+
static inline char *buffer_unwrap(buffer_t **buf) {
char *res = (*buf)->data;
(*buf)->data = NULL;
buffer_extendch(buf, 1, c);
}
-#endif /* MUTT_LIB_LIB_BUFFER_H */
+void buffer_consume(buffer_t *buf, ssize_t len);
+
+ssize_t buffer_read(buffer_t *buf, int fd, ssize_t count);
+
+#endif /* PFIXTOOLS_BUFFER_H */