diff --git a/src/fast_buffer.c b/src/fast_buffer.c index ddf3439..9ffa6c8 100644 --- a/src/fast_buffer.c +++ b/src/fast_buffer.c @@ -80,7 +80,7 @@ int fast_buffer_append(FastBuffer *buffer, const char *format, ...) int result; int len; - if ((result=fast_buffer_check(buffer, 10)) != 0) + if ((result=fast_buffer_check(buffer, 64)) != 0) { return result; } @@ -102,8 +102,12 @@ int fast_buffer_append(FastBuffer *buffer, const char *format, ...) buffer->alloc_size - buffer->length, format, ap); va_end(ap); } + else + { + *(buffer->data + buffer->length) = '\0'; //restore + } } - return 0; + return result; } int fast_buffer_append_buff(FastBuffer *buffer, const char *data, const int len) diff --git a/src/fast_buffer.h b/src/fast_buffer.h index 6b46d74..e1a1e92 100644 --- a/src/fast_buffer.h +++ b/src/fast_buffer.h @@ -30,6 +30,14 @@ static inline int fast_buffer_init(FastBuffer *buffer) return fast_buffer_init_ex(buffer, 0); } +#define fast_buffer_clear(buffer) fast_buffer_reset(buffer) + +static inline void fast_buffer_reset(FastBuffer *buffer) +{ + buffer->length = 0; + *buffer->data = '\0'; +} + void fast_buffer_destroy(FastBuffer *buffer); int fast_buffer_append(FastBuffer *buffer, const char *format, ...); @@ -45,6 +53,11 @@ static inline int fast_buffer_append_string(FastBuffer *buffer, const char *str) return fast_buffer_append_buff(buffer, str, strlen(str)); } +static inline int fast_buffer_append_buffer(FastBuffer *buffer, FastBuffer *src) +{ + return fast_buffer_append_buff(buffer, src->data, src->length); +} + #ifdef __cplusplus } #endif