00001 #ifndef VSF_STRLIST_H 00002 #define VSF_STRLIST_H 00003 00004 /* Forward declarations */ 00005 struct mystr; 00006 struct mystr_list_node; 00007 00008 struct mystr_list 00009 { 00010 unsigned int PRIVATE_HANDS_OFF_alloc_len; 00011 unsigned int PRIVATE_HANDS_OFF_list_len; 00012 struct mystr_list_node* PRIVATE_HANDS_OFF_p_nodes; 00013 }; 00014 00015 #define INIT_STRLIST \ 00016 { 0, 0, (void*)0 } 00017 00018 void str_list_free(struct mystr_list* p_list); 00019 00020 void str_list_add(struct mystr_list* p_list, const struct mystr* p_str, 00021 const struct mystr* p_sort_key_str); 00022 void str_list_sort(struct mystr_list* p_list, int reverse); 00023 00024 int str_list_get_length(const struct mystr_list* p_list); 00025 int str_list_contains_str(const struct mystr_list* p_list, 00026 const struct mystr* p_str); 00027 00028 const struct mystr* str_list_get_pstr(const struct mystr_list* p_list, 00029 unsigned int indexx); 00030 00031 #endif /* VSF_STRLIST_H */ 00032