aboutsummaryrefslogtreecommitdiff
path: root/include/strlist.h
blob: 2d3c3cf58039ba00f2fdddb82429d32956f60bb5 (plain) (blame)
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
/**
 * String array convenience functions
 * @file strlist.h
 */
#ifndef OMC_STRLIST_H
#define OMC_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);

#endif //OMC_STRLIST_H