stringlist.h File Reference

#include <gwenhywfar/gwenhywfarapi.h>

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 }

Functions

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)
GWENHYWFAR_API void GWEN_StringList_Clear (GWEN_STRINGLIST *sl)
GWENHYWFAR_API unsigned int GWEN_StringList_Count (const GWEN_STRINGLIST *sl)
GWENHYWFAR_API GWEN_STRINGLISTGWEN_StringList_dup (const GWEN_STRINGLIST *sl)
GWENHYWFAR_API
GWEN_STRINGLISTENTRY
GWEN_StringList_FirstEntry (const GWEN_STRINGLIST *sl)
GWENHYWFAR_API const char * GWEN_StringList_FirstString (const GWEN_STRINGLIST *l)
GWENHYWFAR_API void * GWEN_StringList_ForEach (const GWEN_STRINGLIST *l, void *(*func)(const char *s, void *u), void *user_data)
GWENHYWFAR_API void GWEN_StringList_free (GWEN_STRINGLIST *sl)
GWENHYWFAR_API int GWEN_StringList_HasString (const GWEN_STRINGLIST *sl, const char *s)
GWENHYWFAR_API int GWEN_StringList_InsertString (GWEN_STRINGLIST *sl, const char *s, int take, int checkDouble)
GWENHYWFAR_API GWEN_STRINGLISTGWEN_StringList_new ()
GWENHYWFAR_API void GWEN_StringList_RemoveEntry (GWEN_STRINGLIST *sl, GWEN_STRINGLISTENTRY *se)
GWENHYWFAR_API int GWEN_StringList_RemoveString (GWEN_STRINGLIST *sl, const char *s)
GWENHYWFAR_API void GWEN_StringList_SetIgnoreRefCount (GWEN_STRINGLIST *sl, int i)
GWENHYWFAR_API void GWEN_StringList_SetSenseCase (GWEN_STRINGLIST *sl, int i)
GWENHYWFAR_API void GWEN_StringList_Sort (GWEN_STRINGLIST *l, int ascending, GWEN_STRINGLIST_SORT_MODE sortMode)
GWENHYWFAR_API const char * GWEN_StringList_StringAt (const GWEN_STRINGLIST *l, int idx)
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)


Typedef Documentation

typedef struct GWEN_STRINGLISTSTRUCT GWEN_STRINGLIST

Definition at line 53 of file stringlist.h.

typedef struct GWEN_STRINGLISTENTRYSTRUCT GWEN_STRINGLISTENTRY

Definition at line 50 of file stringlist.h.


Enumeration Type Documentation

Enumerator:
GWEN_StringList_SortModeNoCase  case-insensitive, i.e. using strcasecmp(3).
GWEN_StringList_SortModeCase  case-sensitive, i.e. using strcmp(3).
GWEN_StringList_SortModeInt  handle string list entries as integers (-> correct sorting of ASCII coded values like "10", "1")

Definition at line 39 of file stringlist.h.


Function Documentation

GWENHYWFAR_API void GWEN_StringList_AppendEntry ( GWEN_STRINGLIST sl,
GWEN_STRINGLISTENTRY se 
)

Definition at line 128 of file stringlist.c.

Referenced by GWEN_StringList_AppendString(), and GWEN_StringList_dup().

GWENHYWFAR_API int GWEN_StringList_AppendString ( GWEN_STRINGLIST sl,
const char *  s,
int  take,
int  checkDouble 
)

Appends a string.

Returns:
0 if not appended, !=0 if appended
Parameters:
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

Definition at line 194 of file stringlist.c.

References GWEN_StringList_AppendEntry(), and GWEN_StringListEntry_new().

Referenced by GWEN_Gui_CGui_SetPasswordStatus(), GWEN_I18N_SetLocale(), GWEN_MsgEngine__ListGroup(), GWEN_MsgEngine__ShowGroup(), and GWEN_PathManager_GetPaths().

GWENHYWFAR_API void GWEN_StringList_Clear ( GWEN_STRINGLIST sl  ) 

Definition at line 179 of file stringlist.c.

References GWEN_StringListEntry_free().

Referenced by GWEN_I18N_SetLocale().

GWENHYWFAR_API unsigned int GWEN_StringList_Count ( const GWEN_STRINGLIST sl  ) 

Returns the number of elements in this list.

Definition at line 336 of file stringlist.c.

Referenced by GWEN_I18N_ModuleInit(), GWEN_PathManager_GetPaths(), and print_paths().

GWENHYWFAR_API GWEN_STRINGLIST* GWEN_StringList_dup ( const GWEN_STRINGLIST sl  ) 

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.

Definition at line 415 of file stringlist.c.

Referenced by GWEN_I18N_ModuleInit().

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.

Parameters:
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'.
Returns:
The non-NULL pointer returned by 'func' as soon as it returns one. Otherwise (i.e. 'func' always returns NULL) returns NULL.

Definition at line 391 of file stringlist.c.

References GWEN_StringList_FirstEntry(), GWEN_StringListEntry_Data(), and GWEN_StringListEntry_Next().

Referenced by print_paths().

GWENHYWFAR_API void GWEN_StringList_free ( GWEN_STRINGLIST sl  ) 

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.

Returns:
!=0 if found, 0 otherwise

Definition at line 343 of file stringlist.c.

Referenced by GWEN_Gui_CGui_GetPassword().

GWENHYWFAR_API int GWEN_StringList_InsertString ( GWEN_STRINGLIST sl,
const char *  s,
int  take,
int  checkDouble 
)

Inserts a string.

Returns:
0 if not inserted, !=0 if inserted
Parameters:
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

Definition at line 233 of file stringlist.c.

References GWEN_StringListEntry_new().

GWENHYWFAR_API GWEN_STRINGLIST* GWEN_StringList_new (  ) 

GWENHYWFAR_API void GWEN_StringList_RemoveEntry ( GWEN_STRINGLIST sl,
GWEN_STRINGLISTENTRY se 
)

Definition at line 150 of file stringlist.c.

Referenced by GWEN_StringList_RemoveString().

GWENHYWFAR_API int GWEN_StringList_RemoveString ( GWEN_STRINGLIST sl,
const char *  s 
)

Removes a given string from the stringlist.

Returns:
0 if not found, !=0 if found and removed

Definition at line 272 of file stringlist.c.

References GWEN_StringList_RemoveEntry().

Referenced by GWEN_Gui_CGui_GetPassword(), and GWEN_Gui_CGui_SetPasswordStatus().

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.

Parameters:
sl string list
i if 0 then reference counters are honoured

Definition at line 80 of file stringlist.c.

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.

Parameters:
sl string list
i if 0 then cases are ignored

Definition at line 73 of file stringlist.c.

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.

Parameters:
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

Definition at line 477 of file stringlist.c.

References DBG_ERROR, GWEN_LOGDOMAIN, GWEN_StringList__compar_asc_case(), GWEN_StringList__compar_asc_int(), GWEN_StringList__compar_asc_nocase(), GWEN_StringList__compar_desc_case(), GWEN_StringList__compar_desc_int(), GWEN_StringList__compar_desc_nocase(), GWEN_StringList_SortModeCase, GWEN_StringList_SortModeInt, and GWEN_StringList_SortModeNoCase.

GWENHYWFAR_API const char* GWEN_StringList_StringAt ( const GWEN_STRINGLIST l,
int  idx 
)

Definition at line 555 of file stringlist.c.

GWENHYWFAR_API const char* GWEN_StringListEntry_Data ( const GWEN_STRINGLISTENTRY se  ) 

GWENHYWFAR_API void GWEN_StringListEntry_free ( GWEN_STRINGLISTENTRY sl  ) 

Definition at line 118 of file stringlist.c.

References GWEN_FREE_OBJECT.

Referenced by GWEN_StringList_Clear(), and GWEN_StringList_free().

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 
)

Definition at line 104 of file stringlist.c.

GWENHYWFAR_API void GWEN_StringListEntry_SetData ( GWEN_STRINGLISTENTRY se,
const char *  s 
)


Generated on Wed Sep 3 15:22:01 2008 for gwenhywfar by  doxygen 1.5.6