2021-01-16 05:13:16 +00:00
|
|
|
#include <stddef.h>
|
|
|
|
|
2021-01-16 03:36:16 +00:00
|
|
|
#define SHIFT_ARGS() argv++; argc--
|
2021-01-16 05:44:40 +00:00
|
|
|
#define SET_ARGV0() argv0 = argv[0]; SHIFT_ARGS()
|
2021-01-14 11:46:28 +00:00
|
|
|
|
2021-01-16 03:36:16 +00:00
|
|
|
void die(const char* fmt, ...);
|
|
|
|
void edie(const char* fmt, ...);
|
|
|
|
void usage();
|
|
|
|
|
|
|
|
void* ecalloc(size_t nmemb, size_t size);
|
2021-01-14 11:46:28 +00:00
|
|
|
|
2021-01-16 05:44:40 +00:00
|
|
|
size_t str_pushc(char* s, char c, size_t s_size, size_t realloc_amount);
|
2021-01-16 05:21:37 +00:00
|
|
|
int str_trimr(char* s, char c, int max_num);
|
|
|
|
char* str_concat(int count, ...);
|
2021-01-21 00:37:40 +00:00
|
|
|
#define STR_EALLOC(s) ecalloc(s, sizeof(char))
|
|
|
|
#define STR_MALLOC(s) calloc(s, sizeof(char))
|
2021-01-16 05:13:16 +00:00
|
|
|
|
|
|
|
struct str_list {
|
|
|
|
size_t size;
|
|
|
|
char** values;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct str_list* str_list_add(struct str_list* l, char* s);
|
2021-01-16 08:55:43 +00:00
|
|
|
struct str_list str_list_new(int count, ...);
|
2021-01-16 09:37:41 +00:00
|
|
|
void str_list_free(struct str_list* l);
|
2021-01-21 00:37:40 +00:00
|
|
|
#define STR_LIST_INIT() str_list_new(0)
|
2021-01-16 05:13:16 +00:00
|
|
|
|