AString
0.2
A Lightweight C Language String Library
|
00001 00010 #ifndef __A_STRING_LIST_H__ 00011 #define __A_STRING_LIST_H__ 00012 00013 #include "astring.h" 00014 00015 #define A_STRING_LIST_FLAG 102 00016 #define A_IS_STRING_LIST(string) (*(auchar *)string == A_STRING_LIST_FLAG) 00017 00021 struct _AStringList { 00022 auchar flag; 00023 volatile aboolean lock; 00025 asize length; 00026 asize allocated_len; 00028 AString ** data; 00029 }; 00030 00034 typedef int (*A_CMP)(const void *a, const void *b); 00038 typedef struct _AStringList AStringList; 00039 00045 AStringList * a_string_list_new (void); 00054 AStringList * a_string_list_assign (AStringList *list, 00055 AString *string); 00056 00066 AStringList * a_string_list_assign_split (AStringList *list, 00067 AString *string, 00068 AString *split); 00075 AStringList * a_string_list_load_from_file(const char * filename); 00083 AStringList * a_string_list_append (AStringList *list, 00084 AStringList *list2); 00092 AStringList * a_string_list_prepend (AStringList *list, 00093 AStringList *list2); 00102 AStringList * a_string_list_add (AStringList *list, 00103 AString *string); 00113 AStringList * a_string_list_insert (AStringList *list, 00114 asize index, 00115 AString *string); 00123 AStringList * a_string_list_delete (AStringList *list, 00124 asize index); 00131 AStringList * a_string_list_clear (AStringList *list); 00140 AStringList * a_string_list_exchange (AStringList *list, 00141 asize index1, 00142 asize index2); 00151 asize a_string_list_find (AStringList *list, 00152 AString *string, 00153 asize index); 00163 asize a_string_list_find_name (AStringList *list, 00164 AString *string, 00165 asize index); 00175 AString * a_string_list_get_value (AStringList *list, 00176 asize index); 00185 AString * a_string_list_get_index (AStringList *list, 00186 asize index); 00193 AStringList * a_string_list_sort (AStringList *list); 00201 AStringList * a_string_list_sort_custom (AStringList *list, 00202 A_CMP cmp); 00209 aboolean a_string_list_sorted (AStringList *list); 00217 aboolean a_string_list_sorted_custom(AStringList *list, 00218 A_CMP cmp); 00226 AStringList * a_string_list_dup (AStringList *list); 00235 AString * a_string_list_get_text (AStringList *list, auchar returnchar); 00245 aboolean a_string_list_save_to_file (AStringList *list, 00246 const char * filename, 00247 auchar returnchar); 00255 aboolean a_string_list_equal (AStringList *list1, 00256 AStringList *list2); 00262 void a_string_list_free (AStringList *list); 00263 00264 #endif 00265