gwenhywfar
5.11.1beta
|
Go to the source code of this file.
Typedefs | |
typedef struct GWEN_STRINGLISTSTRUCT | GWEN_STRINGLIST |
typedef struct GWEN_STRINGLISTENTRYSTRUCT | GWEN_STRINGLISTENTRY |
Enumerations | |
enum | GWEN_STRINGLIST_SORT_MODE { GWEN_StringList_SortModeNoCase =0 , GWEN_StringList_SortModeCase , GWEN_StringList_SortModeInt } |
typedef struct GWEN_STRINGLISTSTRUCT GWEN_STRINGLIST |
Definition at line 1 of file stringlist.h.
typedef struct GWEN_STRINGLISTENTRYSTRUCT GWEN_STRINGLISTENTRY |
Definition at line 1 of file stringlist.h.
Definition at line 41 of file stringlist.h.
GWENHYWFAR_API void GWEN_StringList_AppendEntry | ( | GWEN_STRINGLIST * | sl, |
GWEN_STRINGLISTENTRY * | se | ||
) |
GWENHYWFAR_API int GWEN_StringList_AppendString | ( | GWEN_STRINGLIST * | sl, |
const char * | s, | ||
int | take, | ||
int | checkDouble | ||
) |
Appends a string.
take | if true then the StringList takes over ownership of the string |
checkDouble | if true the the string will only be appended if it does not already exist |
GWENHYWFAR_API void GWEN_StringList_AppendStringList | ( | GWEN_STRINGLIST * | slDest, |
const GWEN_STRINGLIST * | slSource, | ||
int | checkDouble | ||
) |
Append duplicates of the entries in the source list to the destination list. The source list is not modified.
GWENHYWFAR_API void GWEN_StringList_Clear | ( | GWEN_STRINGLIST * | sl | ) |
GWENHYWFAR_API unsigned int GWEN_StringList_Count | ( | const GWEN_STRINGLIST * | sl | ) |
Returns the number of elements in this list.
GWENHYWFAR_API GWEN_STRINGLIST* GWEN_StringList_dup | ( | const GWEN_STRINGLIST * | sl | ) |
GWENHYWFAR_API GWEN_STRINGLISTENTRY* GWEN_StringList_FindStringEntry | ( | const GWEN_STRINGLIST * | sl, |
const char * | s | ||
) |
Returns the first stringlist entry which contains the given string
GWENHYWFAR_API GWEN_STRINGLISTENTRY* GWEN_StringList_FirstEntry | ( | const GWEN_STRINGLIST * | sl | ) |
GWENHYWFAR_API const char* GWEN_StringList_FirstString | ( | const GWEN_STRINGLIST * | l | ) |
Returns the first string in this list.
GWENHYWFAR_API void* GWEN_StringList_ForEach | ( | const GWEN_STRINGLIST * | l, |
void *(*)(const char *s, void *u) | func, | ||
void * | user_data | ||
) |
Traverses the list, calling the callback function 'func' on each list element. Traversal will stop when 'func' returns a non-NULL value, and the routine will return with that value. Otherwise the routine will return NULL.
l | The list to traverse. |
func | The function to be called with each list element. |
user_data | A pointer passed on to the function 'func'. |
GWENHYWFAR_API void GWEN_StringList_free | ( | GWEN_STRINGLIST * | sl | ) |
GWENHYWFAR_API GWEN_STRINGLIST* GWEN_StringList_fromString | ( | const char * | str, |
const char * | delimiters, | ||
int | checkDouble | ||
) |
GWENHYWFAR_API GWEN_STRINGLIST* GWEN_StringList_fromString2 | ( | const char * | str, |
const char * | delimiters, | ||
int | checkDouble, | ||
uint32_t | flags | ||
) |
Create a stringlist from a given complex string.
In addition to GWEN_StringList_fromString() this version allows to modify the behavior of the function by adding some flags (see GWEN_TEXT_FLAGS_CHECK_BACKSLASH and following). Typically used flags are:
str | string to dissect |
delimiters | word delimiters |
checkDouble | if !=0 only add unique strings to the resulting list |
flags | (see GWEN_TEXT_FLAGS_DEL_QUOTES and others) |
GWENHYWFAR_API GWEN_STRINGLIST* GWEN_StringList_fromTabString | ( | const char * | s, |
int | checkDup | ||
) |
GWENHYWFAR_API int GWEN_StringList_GetStringPos | ( | const GWEN_STRINGLIST * | sl, |
const char * | s | ||
) |
Returns the position of the given string within the stringlist.
GWENHYWFAR_API int GWEN_StringList_HasString | ( | const GWEN_STRINGLIST * | sl, |
const char * | s | ||
) |
Checks whether the given string already exists within in the string list.
GWENHYWFAR_API int GWEN_StringList_InsertString | ( | GWEN_STRINGLIST * | sl, |
const char * | s, | ||
int | take, | ||
int | checkDouble | ||
) |
Inserts a string.
take | if true then the StringList takes over ownership of the string |
checkDouble | if true the the string will only be appended if it does not already exist |
GWENHYWFAR_API GWEN_STRINGLIST* GWEN_StringList_new | ( | void | ) |
GWENHYWFAR_API void GWEN_StringList_RemoveCommonFirstEntries | ( | GWEN_STRINGLIST * | sl1, |
GWEN_STRINGLIST * | sl2 | ||
) |
Remove first equal entries from both lists.
If stringlist 1 contains "A", "B", "C", "D" and stringlist 2 contains "A", "B", "X" then after this function the lists are changed to this: stringlist 1 contains "C", "D" stringlist 2 contains "X"
GWENHYWFAR_API void GWEN_StringList_RemoveEntry | ( | GWEN_STRINGLIST * | sl, |
GWEN_STRINGLISTENTRY * | se | ||
) |
GWENHYWFAR_API void GWEN_StringList_RemoveFirstString | ( | GWEN_STRINGLIST * | sl | ) |
Removes the first string from the stringlist (if any).
GWENHYWFAR_API int GWEN_StringList_RemoveString | ( | GWEN_STRINGLIST * | sl, |
const char * | s | ||
) |
Removes a given string from the stringlist.
GWENHYWFAR_API void GWEN_StringList_SetIgnoreRefCount | ( | GWEN_STRINGLIST * | sl, |
int | i | ||
) |
Normally this group of functions ignores reference counters on stringlist entries when removing a string via GWEN_StringList_RemoveString. You can change this behaviour here.
sl | string list |
i | if 0 then reference counters are honoured |
GWENHYWFAR_API void GWEN_StringList_SetSenseCase | ( | GWEN_STRINGLIST * | sl, |
int | i | ||
) |
Normally this group of functions ignores cases when comparing two strings. You can change this behaviour here.
sl | string list |
i | if 0 then cases are ignored |
GWENHYWFAR_API void GWEN_StringList_Sort | ( | GWEN_STRINGLIST * | l, |
int | ascending, | ||
GWEN_STRINGLIST_SORT_MODE | sortMode | ||
) |
Sorts this list. Internally this uses qsort(3), so the sorting should be reasonably fast even for large lists.
l | The list to sort. |
ascending | If non-zero, the list is sorted ascending, i.e. smallest string first, according to strcmp(3) rules. If zero, the list is sorted descending. |
sortMode | See GWEN_StringList_SortModeNoCase and following |
GWENHYWFAR_API int GWEN_StringList_StringAsIntAt | ( | const GWEN_STRINGLIST * | l, |
int | idx, | ||
int | defaultValue | ||
) |
GWENHYWFAR_API const char* GWEN_StringList_StringAt | ( | const GWEN_STRINGLIST * | l, |
int | idx | ||
) |
GWENHYWFAR_API int GWEN_StringList_toBuffer | ( | const GWEN_STRINGLIST * | sl, |
const char * | delimiter, | ||
GWEN_BUFFER * | outBuffer | ||
) |
GWENHYWFAR_API const char* GWEN_StringListEntry_Data | ( | const GWEN_STRINGLISTENTRY * | se | ) |
GWENHYWFAR_API void GWEN_StringListEntry_free | ( | GWEN_STRINGLISTENTRY * | sl | ) |
GWENHYWFAR_API GWEN_STRINGLISTENTRY* GWEN_StringListEntry_new | ( | const char * | s, |
int | take | ||
) |
GWENHYWFAR_API GWEN_STRINGLISTENTRY* GWEN_StringListEntry_Next | ( | const GWEN_STRINGLISTENTRY * | se | ) |
GWENHYWFAR_API void GWEN_StringListEntry_ReplaceString | ( | GWEN_STRINGLISTENTRY * | e, |
const char * | s, | ||
int | take | ||
) |
GWENHYWFAR_API void GWEN_StringListEntry_SetData | ( | GWEN_STRINGLISTENTRY * | se, |
const char * | s | ||
) |