1#ifndef VSF_STRLIST_H
2#define VSF_STRLIST_H
3
4/* Forward declarations */
5struct mystr;
6struct mystr_list_node;
7
8struct mystr_list
9{
10  unsigned int PRIVATE_HANDS_OFF_alloc_len;
11  unsigned int PRIVATE_HANDS_OFF_list_len;
12  struct mystr_list_node* PRIVATE_HANDS_OFF_p_nodes;
13};
14
15#define INIT_STRLIST \
16  { 0, 0, (void*)0 }
17
18void str_list_free(struct mystr_list* p_list);
19
20void str_list_add(struct mystr_list* p_list, const struct mystr* p_str,
21                  const struct mystr* p_sort_key_str);
22void str_list_sort(struct mystr_list* p_list, int reverse);
23
24int str_list_get_length(const struct mystr_list* p_list);
25int str_list_contains_str(const struct mystr_list* p_list,
26                          const struct mystr* p_str);
27
28const struct mystr* str_list_get_pstr(const struct mystr_list* p_list,
29                                      unsigned int indexx);
30
31#endif /* VSF_STRLIST_H */
32
33