1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
/**
* String array convenience functions
* @file strlist.h
*/
#ifndef STASIS_STRLIST_H
#define STASIS_STRLIST_H
#include <stdlib.h>
#include "utils.h"
#include "str.h"
struct StrList {
size_t num_alloc;
size_t num_inuse;
char **data;
};
struct StrList *strlist_init();
void strlist_remove(struct StrList *pStrList, size_t index);
long double strlist_item_as_long_double(struct StrList *pStrList, size_t index);
double strlist_item_as_double(struct StrList *pStrList, size_t index);
float strlist_item_as_float(struct StrList *pStrList, size_t index);
unsigned long long strlist_item_as_ulong_long(struct StrList *pStrList, size_t index);
long long strlist_item_as_long_long(struct StrList *pStrList, size_t index);
unsigned long strlist_item_as_ulong(struct StrList *pStrList, size_t index);
long strlist_item_as_long(struct StrList *pStrList, size_t index);
unsigned int strlist_item_as_uint(struct StrList *pStrList, size_t index);
int strlist_item_as_int(struct StrList *pStrList, size_t index);
unsigned short strlist_item_as_ushort(struct StrList *pStrList, size_t index);
short strlist_item_as_short(struct StrList *pStrList, size_t index);
unsigned char strlist_item_as_uchar(struct StrList *pStrList, size_t index);
char strlist_item_as_char(struct StrList *pStrList, size_t index);
char *strlist_item_as_str(struct StrList *pStrList, size_t index);
char *strlist_item(struct StrList *pStrList, size_t index);
void strlist_set(struct StrList **pStrList, size_t index, char *value);
size_t strlist_count(struct StrList *pStrList);
void strlist_reverse(struct StrList *pStrList);
void strlist_sort(struct StrList *pStrList, unsigned int mode);
int strlist_append_file(struct StrList *pStrList, char *path, ReaderFn *readerFn);
void strlist_append_strlist(struct StrList *pStrList1, struct StrList *pStrList2);
void strlist_append(struct StrList **pStrList, char *str);
void strlist_append_array(struct StrList *pStrList, char **arr);
void strlist_append_tokenize(struct StrList *pStrList, char *str, char *delim);
struct StrList *strlist_copy(struct StrList *pStrList);
int strlist_cmp(struct StrList *a, struct StrList *b);
void strlist_free(struct StrList **pStrList);
#define STRLIST_E_SUCCESS 0
#define STRLIST_E_OUT_OF_RANGE 1
#define STRLIST_E_INVALID_VALUE 2
#define STRLIST_E_UNKNOWN 3
extern int strlist_errno;
const char *strlist_get_error(int flag);
#endif //STASIS_STRLIST_H
|