1 #ifndef VSF_STRLIST_H
2 #define VSF_STRLIST_H
3 
4 /* Forward declarations */
5 struct mystr;
6 struct mystr_list_node;
7 
8 struct 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 
18 void str_list_free(struct mystr_list* p_list);
19 
20 void str_list_add(struct mystr_list* p_list, const struct mystr* p_str,
21                   const struct mystr* p_sort_key_str);
22 void str_list_sort(struct mystr_list* p_list, int reverse);
23 
24 unsigned int str_list_get_length(const struct mystr_list* p_list);
25 int str_list_contains_str(const struct mystr_list* p_list,
26                           const struct mystr* p_str);
27 
28 const struct mystr* str_list_get_pstr(const struct mystr_list* p_list,
29                                       unsigned int indexx);
30 
31 #endif /* VSF_STRLIST_H */
32 
33