Refactoring.
[apps/pfixtools.git] / buffer.h
index e3075ba..c399259 100644 (file)
--- 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                  */
 /*          ~~~~~~~~~                                                         */
 /*  ________________________________________________________________________  */
 /*                                                                            */
 /******************************************************************************/
 
 /*
- * 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"
@@ -45,6 +45,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);
@@ -52,6 +54,10 @@ static inline void buffer_wipe(buffer_t *buf) {
 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;
@@ -96,4 +102,8 @@ static inline void buffer_addch(buffer_t *buf, int c) {
     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 */