From 24d8e81116888607be44129210ddf9c717036d9d Mon Sep 17 00:00:00 2001 From: leitner Date: Mon, 9 Sep 2013 19:03:52 +0000 Subject: [PATCH] add buffer_fromarray, buffer_frombuf --- buffer.h | 6 ++++++ buffer/buffer_fromarray.c | 9 +++++++++ buffer/buffer_frombuf.c | 18 ++++++++++++++++++ buffer/buffer_fromsa.c | 14 +------------- 4 files changed, 34 insertions(+), 13 deletions(-) create mode 100644 buffer/buffer_fromarray.c create mode 100644 buffer/buffer_frombuf.c diff --git a/buffer.h b/buffer.h index 76e6d20..24ff5e1 100644 --- a/buffer.h +++ b/buffer.h @@ -143,6 +143,12 @@ void buffer_fromsa(buffer* b,stralloc* sa); /* read from sa */ int buffer_tosa(buffer*b,stralloc* sa); /* write to sa, auto-growing it */ #endif +void buffer_frombuf(buffer* b,const char* x,size_t l); /* buffer reads from static buffer */ + +#ifdef ARRAY_H +void buffer_fromarray(buffer* b,array* a); /* buffer reads from array */ +#endif + #ifdef __cplusplus } #endif diff --git a/buffer/buffer_fromarray.c b/buffer/buffer_fromarray.c new file mode 100644 index 0000000..45ab9a6 --- /dev/null +++ b/buffer/buffer_fromarray.c @@ -0,0 +1,9 @@ +#include "array.h" +#include "buffer.h" + +void buffer_fromarray(buffer* b,array* a) { + if (array_failed(a)) + buffer_frombuf(b,NULL,0); + else + buffer_frombuf(b,array_start(a),a->initialized); +} diff --git a/buffer/buffer_frombuf.c b/buffer/buffer_frombuf.c new file mode 100644 index 0000000..fe849ac --- /dev/null +++ b/buffer/buffer_frombuf.c @@ -0,0 +1,18 @@ +#include "stralloc.h" +#include "buffer.h" + +static ssize_t dummyreadwrite(int fd,char* buf,size_t len) { + (void)fd; + (void)buf; + (void)len; + return 0; +} + +void buffer_frombuf(buffer* b,const char* x,size_t l) { + b->x=x; + b->p=0; + b->n=l; + b->a=l; + b->fd=0; + b->op=dummyreadwrite; +} diff --git a/buffer/buffer_fromsa.c b/buffer/buffer_fromsa.c index 34cf170..ea4fb98 100644 --- a/buffer/buffer_fromsa.c +++ b/buffer/buffer_fromsa.c @@ -1,18 +1,6 @@ #include "stralloc.h" #include "buffer.h" -static ssize_t dummyreadwrite(int fd,char* buf,size_t len) { - (void)fd; - (void)buf; - (void)len; - return 0; -} - void buffer_fromsa(buffer* b,stralloc* sa) { - b->x=sa->s; - b->p=0; - b->n=sa->len; - b->a=sa->a; - b->fd=0; - b->op=dummyreadwrite; + buffer_frombuf(b,sa->s,sa->len); }