diff buffer.h @ 47:fea13579acbe

Some change in buffer
author David Demelier <markand@malikania.fr>
date Fri, 07 Oct 2011 16:10:33 +0200
parents 5252fa9b5cb1
children bbe0713e8e2a
line wrap: on
line diff
--- a/buffer.h	Wed Oct 05 19:46:31 2011 +0200
+++ b/buffer.h	Fri Oct 07 16:10:33 2011 +0200
@@ -21,34 +21,30 @@
 
 #define	BUFFER_DEFAULT_BSIZE	512
 
-#define BUFFER_FIXED	0x00
-#define BUFFER_AUTO	0x01
-
 #include <stdarg.h>
 
-struct buffer {
-	char	*data;		/* string buffer */
-	size_t	length;		/* string's length */
-
-	int	flags;		/* buffer's flags (default AUTO) */
-
-	/* Private should not be modified by user */
-	size_t	size;		/* current size */
-	size_t	bsize;		/* block size */
+enum buffer_type {
+	BUFFER_FIXED	= 0,
+	BUFFER_AUTO	= 1
 };
 
-struct buffer	*buffer_new(const char *, size_t, int);
-#define buffer_new_auto(size)	buffer_new(NULL, size, BUFFER_AUTO)
-#define buffer_new_fixed(max)	buffer_new(NULL, max, BUFFER_FIXED)
+struct buffer {
+	enum buffer_type type;		/* buffer type (default AUTO) */
+	char		*data;		/* string buffer */
+	size_t		length;		/* string's real length */
+	size_t		size;		/* current allocated size */
+	int		bsize;		/* initial length */
+};
 
-int	buffer_strcat(struct buffer *, const char *);
-int	buffer_putc(struct buffer *buf, char);
-int	buffer_bcat(struct buffer *, const void *, size_t);
-int	buffer_vprintf(struct buffer *, const char *, va_list);
-int	buffer_printf(struct buffer *, const char *, ...);
-int	buffer_shrink(struct buffer *);
-char	*buffer_end(struct buffer *);
-void	buffer_clear(struct buffer *);
-void	buffer_free(struct buffer *);
+struct buffer	*buffer_new(enum buffer_type, int);
+int		buffer_strcat(struct buffer *, const char *);
+int		buffer_putc(struct buffer *buf, char);
+int		buffer_bcat(struct buffer *, const void *, size_t);
+int		buffer_vprintf(struct buffer *, const char *, va_list);
+int		buffer_printf(struct buffer *, const char *, ...);
+int		buffer_shrink(struct buffer *);
+char		*buffer_end(struct buffer *);
+void		buffer_clear(struct buffer *);
+void		buffer_free(struct buffer *);
 
 #endif /* _BUFFER_H_ */