40 l = malloc(
sizeof(
list));
77 assert(l->
size < UINT_MAX);
108 assert(l->
size < UINT_MAX);
134 if (l->
size == 0)
return;
159 for (ln_parse = l_to_add->
first ; ln_parse ; ln_parse = ln_parse->
next) {
194 assert(l->
size < UINT_MAX);
246 if (l) l->
first = NULL;
286 if (!strcmp(value, ln->
value->
buf))
return true;
307 for (i = 0 ; i < value->
use ; i++)
308 if (value->
buf[i] == separator) {
341 if (s <= 0 || s == value->use) {
377 if (value->
buf[0] != separator_start) {
384 for (i = 1 ; i < value->
use ; i++)
385 if (value->
buf[i] == separator_end) {
387 }
else if (value->
buf[i] != separator_start) {
412 for (i = 0; value[i] !=
'\0'; i++)
413 if (value[i] == separator) {
441 for (i = 0; value[i] !=
'\0'; i++)
442 if (value[i] == separator) {
447 if(value[i] !=
' ') {
468 for (ln = l->
first ; ln ; ln = ln->
next) {
488 for (ln = l->
first ; ln ; ln = ln->
next) {
489 fprintf(output,
"[");
491 fprintf(output,
"]\n");
void list_add_by_copy(list *l, buffer *value)
list * list_explode_start_end(char separator_start, char separator_end, buffer *value)
void list_implode(buffer *buf, const char *separator, const list *l)
bool in_list(const list *l, const buffer *value)
void list_node_free(list *l, list_node *ln)
bool in_list_str(const list *l, const char *value)
list_node * list_node_init()
void list_add(list *l, buffer *value)
void list_add_str(list *l, char *value)
list * list_explode_str_trim(char separator, const char *value)
list * list_split(char separator, const buffer *value, bool reverse)
void list_add_list(list *l, list *l_to_add)
list * list_explode(char separator, const buffer *value)
list * list_explode_str(char separator, const char *value)
void buffer_add(buffer *buf, char c)
void buffer_copy(buffer *dest, const buffer *src)
bool buffer_cmp(const buffer *buf, const char *str)
void buffer_add_str(buffer *buf, const char *str)
void list_flush(const list *l, FILE *output)
void buffer_flush(buffer *buf, FILE *output)
long int buffer_rchr(const buffer *buf, char c)
long int buffer_chr(const buffer *buf, char c)
void buffer_add_nstr(buffer *buf, const char *str, size_t n)
void buffer_free(buffer *buf)
void buffer_shift(buffer *buf, size_t len)
struct List_node list_node
char * buf
size to next realloc