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