33#include "../ows/ows.h"
37#define SIZE_MAX (~(size_t)0)
65 buf = malloc(
sizeof(
buffer));
103 if (buf->
use > 0) buf->
buf[0] =
'\0';
116 fprintf(output,
"%s", buf->
buf);
130 buf->
buf[buf->
use + 1] =
'\0';
145 snprintf(res->
buf, 99,
"%f", f);
147 _snprintf(res->
buf, 99,
"%f", f);
149 res->
use = strlen(res->
buf);
195 sprintf(res->
buf,
"%i", i);
196 res->
use = strlen(res->
buf);
223 if ((buf->
use + 2) >= buf->
size)
227 for (i = buf->
use; i > 0; i--)
228 buf->
buf[i] = buf->
buf[i - 1];
231 buf->
buf[buf->
use + 1] =
'\0';
246 for (i = strlen(str); i != 0; i--)
259 if ((strlen(str) + buf->
use) >= buf->
size)
260 while ((strlen(str) + buf->
use) >= buf->
size)
263 strcat(buf->
buf, str);
264 buf->
use = buf->
use + strlen(str);
276 assert(n <= strlen(str));
278 if ((n + buf->
use) >= buf->
size)
279 while ((n + buf->
use) >= buf->
size)
282 strncat(buf->
buf, str, n);
297 if (buf->
use != strlen(str))
return false;
299 for (i = 0; i < buf->
use; i++)
300 if (buf->
buf[i] != str[i])
317 if (buf->
use < n)
return false;
319 for (i = 0 ; i < n ; i++)
320 if (buf->
buf[i] != str[i])
337 if (buf->
use != strlen(str))
return false;
339 for (i = 0; i < buf->
use; i++)
340 if (toupper(buf->
buf[i]) != toupper(str[i]))
382 assert(len <= buf->use);
385 buf->
buf[buf->
use] =
'\0';
397 assert(len <= buf->use);
399 if (len <= 0)
return;
401 for (i = len; i < buf->
use; i++)
402 buf->
buf[i - len] = buf->
buf[i];
405 buf->
buf[buf->
use] =
'\0';
422 if (!strcmp(before, after))
return buf;
427 pos = strstr(new_buf->
buf, before);
429 length = strlen(pos);
441 pos = strstr(new_buf->
buf, before);
463 for(i=0 ; i < buf->
use ; i++) {
464 if (buf->
buf[i] == c)
482 for(i=buf->
use ; i > 0 ; i--) {
483 if (buf->
buf[i] == c)
508 for( ; *str ; str++) {
551 for( ; *str ; str++) {
buffer * buffer_encode_xml_entities_str(const char *str)
void buffer_add(buffer *buf, char c)
void buffer_empty(buffer *buf)
buffer * buffer_encode_json_str(const char *str)
void buffer_copy(buffer *dest, const buffer *src)
static void buffer_realloc(buffer *buf)
bool buffer_cmp(const buffer *buf, const char *str)
void buffer_add_str(buffer *buf, const char *str)
void buffer_flush(buffer *buf, FILE *output)
bool buffer_case_cmp(const buffer *buf, const char *str)
long int buffer_rchr(const buffer *buf, char c)
long int buffer_chr(const buffer *buf, char c)
void buffer_add_double(buffer *buf, double f)
void buffer_add_nstr(buffer *buf, const char *str, size_t n)
bool buffer_ncmp(const buffer *buf, const char *str, size_t n)
void buffer_add_head_str(buffer *buf, char *str)
buffer * buffer_replace(buffer *buf, char *before, char *after)
void buffer_add_head(buffer *buf, char c)
buffer * buffer_from_str(const char *str)
void buffer_free(buffer *buf)
buffer * buffer_clone(buffer *buf)
void buffer_add_int(buffer *buf, int i)
void buffer_shift(buffer *buf, size_t len)
buffer * buffer_itoa(int i)
buffer * buffer_ftoa(double f)
void buffer_pop(buffer *buf, size_t len)
size_t size
size used for data
char * buf
size to next realloc
size_t realloc
memory available