gwenhywfar  4.8.0beta
Functions
stringlist2.c File Reference
#include <gwenhywfar/gwenhywfarapi.h>
#include <gwenhywfar/misc.h>
#include "stringlist2_p.h"
#include "debug.h"
#include <stdlib.h>
#include <assert.h>
#include <string.h>

Go to the source code of this file.

Functions

GWEN_STRINGLIST2_ITERATORGWEN_StringList2__GetString (const GWEN_STRINGLIST2 *sl2, const char *s)
 
int GWEN_StringList2_AppendString (GWEN_STRINGLIST2 *sl2, const char *s, int take, GWEN_STRINGLIST2_INSERTMODE m)
 
void GWEN_StringList2_Dump (const GWEN_STRINGLIST2 *sl2)
 
GWEN_STRINGLIST2GWEN_StringList2_dup (GWEN_STRINGLIST2 *sl2)
 
GWEN_STRINGLIST2_ITERATORGWEN_StringList2_First (const GWEN_STRINGLIST2 *l)
 
void GWEN_StringList2_free (GWEN_STRINGLIST2 *sl2)
 
GWEN_STRINGLIST2GWEN_StringList2_fromDb (GWEN_DB_NODE *db, const char *name, GWEN_STRINGLIST2_INSERTMODE m)
 
GWEN_STRINGLIST2GWEN_StringList2_fromXml (GWEN_XMLNODE *node, GWEN_STRINGLIST2_INSERTMODE m)
 
unsigned int GWEN_StringList2_GetCount (const GWEN_STRINGLIST2 *l)
 
const char * GWEN_StringList2_GetStringAt (const GWEN_STRINGLIST2 *sl2, int idx)
 
int GWEN_StringList2_HasString (const GWEN_STRINGLIST2 *sl2, const char *s)
 
int GWEN_StringList2_InsertString (GWEN_STRINGLIST2 *sl2, const char *s, int take, GWEN_STRINGLIST2_INSERTMODE m)
 
GWEN_STRINGLIST2_ITERATORGWEN_StringList2_Last (const GWEN_STRINGLIST2 *l)
 
GWEN_STRINGLIST2GWEN_StringList2_new (void)
 
int GWEN_StringList2_RemoveString (GWEN_STRINGLIST2 *sl2, const char *s)
 
void GWEN_StringList2_SetSenseCase (GWEN_STRINGLIST2 *sl2, int i)
 
int GWEN_StringList2_toDb (GWEN_STRINGLIST2 *sl2, GWEN_DB_NODE *db, const char *name)
 
int GWEN_StringList2_toXml (GWEN_STRINGLIST2 *sl2, GWEN_XMLNODE *node)
 
const char * GWEN_StringList2Iterator_Data (GWEN_STRINGLIST2_ITERATOR *li)
 
GWEN_REFPTRGWEN_StringList2Iterator_DataRefPtr (GWEN_STRINGLIST2_ITERATOR *li)
 
void GWEN_StringList2Iterator_free (GWEN_STRINGLIST2_ITERATOR *li)
 
unsigned int GWEN_StringList2Iterator_GetLinkCount (const GWEN_STRINGLIST2_ITERATOR *li)
 
const char * GWEN_StringList2Iterator_Next (GWEN_STRINGLIST2_ITERATOR *li)
 
const char * GWEN_StringList2Iterator_Previous (GWEN_STRINGLIST2_ITERATOR *li)
 

Function Documentation

GWEN_STRINGLIST2_ITERATOR* GWEN_StringList2__GetString ( const GWEN_STRINGLIST2 sl2,
const char *  s 
)
int GWEN_StringList2_AppendString ( GWEN_STRINGLIST2 sl2,
const char *  s,
int  take,
GWEN_STRINGLIST2_INSERTMODE  m 
)

Appends a string.

Returns
0 if not appended, !=0 if appended
Parameters
takeif true then the StringList takes over ownership of the string
checkDoubleif true the the string will only be appended if it does not already exist

Definition at line 188 of file stringlist2.c.

References GWEN_List_GetRefPtrInfo(), GWEN_List_PushBackRefPtr(), GWEN_ListIterator_IncLinkCount(), GWEN_RefPtr_AddFlags(), GWEN_REFPTR_FLAGS_AUTODELETE, GWEN_RefPtr_new(), GWEN_StringList2__GetString(), GWEN_StringList2_IntertMode_AlwaysAdd, GWEN_StringList2_IntertMode_NoDouble, GWEN_StringList2_IntertMode_Reuse, and GWEN_StringList2Iterator_free().

Referenced by GWEN_StringList2_fromDb(), GWEN_StringList2_fromXml(), and GWEN_XML_AddNameSpace().

void GWEN_StringList2_Dump ( const GWEN_STRINGLIST2 sl2)
GWEN_STRINGLIST2* GWEN_StringList2_dup ( GWEN_STRINGLIST2 sl2)

Definition at line 71 of file stringlist2.c.

References GWEN_List_dup(), and GWEN_NEW_OBJECT.

GWEN_STRINGLIST2_ITERATOR* GWEN_StringList2_First ( const GWEN_STRINGLIST2 l)
void GWEN_StringList2_free ( GWEN_STRINGLIST2 sl2)

Definition at line 62 of file stringlist2.c.

References GWEN_FREE_OBJECT, and GWEN_List_free().

Referenced by GWEN_XMLNode_NormalizeNameSpaces().

GWEN_STRINGLIST2* GWEN_StringList2_fromDb ( GWEN_DB_NODE db,
const char *  name,
GWEN_STRINGLIST2_INSERTMODE  m 
)
GWEN_STRINGLIST2* GWEN_StringList2_fromXml ( GWEN_XMLNODE node,
GWEN_STRINGLIST2_INSERTMODE  m 
)
unsigned int GWEN_StringList2_GetCount ( const GWEN_STRINGLIST2 l)

Definition at line 461 of file stringlist2.c.

References GWEN_List_GetSize().

const char* GWEN_StringList2_GetStringAt ( const GWEN_STRINGLIST2 sl2,
int  idx 
)
int GWEN_StringList2_HasString ( const GWEN_STRINGLIST2 sl2,
const char *  s 
)

Checks whether the given string already exists within in the string list.

Returns
!=0 if found, 0 otherwise

Definition at line 292 of file stringlist2.c.

References GWEN_StringList2_First(), GWEN_StringList2Iterator_Data(), GWEN_StringList2Iterator_free(), and GWEN_StringList2Iterator_Next().

int GWEN_StringList2_InsertString ( GWEN_STRINGLIST2 sl2,
const char *  s,
int  take,
GWEN_STRINGLIST2_INSERTMODE  m 
)

Inserts a string.

Returns
0 if not inserted, !=0 if inserted
Parameters
takeif true then the StringList takes over ownership of the string
checkDoubleif true the the string will only be appended if it does not already exist

Definition at line 230 of file stringlist2.c.

References GWEN_List_GetRefPtrInfo(), GWEN_List_PushFrontRefPtr(), GWEN_ListIterator_IncLinkCount(), GWEN_RefPtr_AddFlags(), GWEN_REFPTR_FLAGS_AUTODELETE, GWEN_RefPtr_new(), GWEN_StringList2__GetString(), GWEN_StringList2_IntertMode_AlwaysAdd, GWEN_StringList2_IntertMode_NoDouble, GWEN_StringList2_IntertMode_Reuse, and GWEN_StringList2Iterator_free().

GWEN_STRINGLIST2_ITERATOR* GWEN_StringList2_Last ( const GWEN_STRINGLIST2 l)

Definition at line 413 of file stringlist2.c.

References GWEN_List_Last().

GWEN_STRINGLIST2* GWEN_StringList2_new ( void  )
int GWEN_StringList2_RemoveString ( GWEN_STRINGLIST2 sl2,
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 stringlist2.c.

References GWEN_List_Erase(), GWEN_ListIterator_GetLinkCount(), GWEN_StringList2__GetString(), and GWEN_StringList2Iterator_free().

void GWEN_StringList2_SetSenseCase ( GWEN_STRINGLIST2 sl2,
int  i 
)

Normally this group of functions ignores cases when comparing two strings. You can change this behaviour here.

Parameters
sl2string list
iif 0 then cases are ignored

Definition at line 181 of file stringlist2.c.

int GWEN_StringList2_toDb ( GWEN_STRINGLIST2 sl2,
GWEN_DB_NODE db,
const char *  name 
)
GWENHYWFAR_API int GWEN_StringList2_toXml ( GWEN_STRINGLIST2 sl2,
GWEN_XMLNODE node 
)
const char* GWEN_StringList2Iterator_Data ( GWEN_STRINGLIST2_ITERATOR li)
GWEN_REFPTR* GWEN_StringList2Iterator_DataRefPtr ( GWEN_STRINGLIST2_ITERATOR li)

Definition at line 446 of file stringlist2.c.

References GWEN_ListIterator_DataRefPtr().

void GWEN_StringList2Iterator_free ( GWEN_STRINGLIST2_ITERATOR li)
unsigned int GWEN_StringList2Iterator_GetLinkCount ( const GWEN_STRINGLIST2_ITERATOR li)

Definition at line 454 of file stringlist2.c.

References GWEN_ListIterator_GetLinkCount().

Referenced by GWEN_StringList2_Dump().

const char* GWEN_StringList2Iterator_Next ( GWEN_STRINGLIST2_ITERATOR li)
const char* GWEN_StringList2Iterator_Previous ( GWEN_STRINGLIST2_ITERATOR li)

Definition at line 426 of file stringlist2.c.

References GWEN_ListIterator_Previous().