# stringlist2.h File Reference

`#include <gwenhywfar/gwenhywfarapi.h>`
`#include <gwenhywfar/stringlist.h>`
`#include <gwenhywfar/types.h>`
`#include <gwenhywfar/refptr.h>`
`#include <gwenhywfar/list.h>`

Go to the source code of this file.

## Typedefs

typedef GWEN_STRINGLIST2 | GWEN_STRINGLIST2
typedef GWEN_LIST_ITERATOR | GWEN_STRINGLIST2_ITERATOR

## Enumerations

enum | GWEN_STRINGLIST2_INSERTMODE { GWEN_StringList2_IntertModeAlwaysAdd = 0, GWEN_StringList2_IntertModeNoDouble, GWEN_StringList2_IntertModeReuse }

## Functions

GWENHYWFAR_API int | GWEN_StringList2_AppendString (GWEN_STRINGLIST2 *sl2, const char *s, int take, GWEN_STRINGLIST2_INSERTMODE m)
GWENHYWFAR_API void | GWEN_StringList2_Dump (const GWEN_STRINGLIST2 *sl2)
GWEN_STRINGLIST2 * | GWEN_StringList2_dup (GWEN_STRINGLIST2 *sl2)
GWEN_STRINGLIST2_ITERATOR * | GWEN_StringList2_First (const GWEN_STRINGLIST2 *l)
void | GWEN_StringList2_free (GWEN_STRINGLIST2 *sl2)
GWENHYWFAR_API int | GWEN_StringList2_HasString (const GWEN_STRINGLIST2 *sl2, const char *s)
GWENHYWFAR_API int | GWEN_StringList2_InsertString (GWEN_STRINGLIST2 *sl2, const char *s, int take, GWEN_STRINGLIST2_INSERTMODE m)
GWEN_STRINGLIST2_ITERATOR * | GWEN_StringList2_Last (const GWEN_STRINGLIST2 *l)
GWEN_STRINGLIST2 * | GWEN_StringList2_new ()
GWENHYWFAR_API int | GWEN_StringList2_RemoveString (GWEN_STRINGLIST2 *sl2, const char *s)
void | GWEN_StringList2_SetIgnoreRefCount (GWEN_STRINGLIST2 *sl2, int i)
void | GWEN_StringList2_SetSenseCase (GWEN_STRINGLIST2 *sl2, int i)
const char * | GWEN_StringList2Iterator_Data (GWEN_STRINGLIST2_ITERATOR *li)
GWEN_REFPTR * | GWEN_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)

## Typedef Documentation

typedef struct GWEN_STRINGLIST2 GWEN_STRINGLIST2

typedef GWEN_LIST_ITERATOR GWEN_STRINGLIST2_ITERATOR

## Enumeration Type Documentation

enum GWEN_STRINGLIST2_INSERTMODE

Enumerator:

  GWEN_StringList2_IntertModeAlwaysAdd |
  GWEN_StringList2_IntertModeNoDouble |
  GWEN_StringList2_IntertModeReuse |

## Function Documentation

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

  | 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_StringList2_Dump | ( | const GWEN_STRINGLIST2 * | sl2 | ) |

GWEN_STRINGLIST2* GWEN_StringList2_dup | ( | GWEN_STRINGLIST2 * | sl2 | ) |

GWEN_STRINGLIST2_ITERATOR* GWEN_StringList2_First | ( | const GWEN_STRINGLIST2 * | l | ) |

void GWEN_StringList2_free | ( | GWEN_STRINGLIST2 * | sl2 | ) |

GWENHYWFAR_API 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

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

  | 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

GWEN_STRINGLIST2_ITERATOR* GWEN_StringList2_Last | ( | const GWEN_STRINGLIST2 * | l | ) |

GWEN_STRINGLIST2* GWEN_StringList2_new | ( |  | ) |

GWENHYWFAR_API 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

void GWEN_StringList2_SetIgnoreRefCount | ( | GWEN_STRINGLIST2 * | sl2,
|  | int | i
| ) |

Normally this group of functions ignores reference counters on stringlist entries when removing a string via GWEN_StringList2_RemoveString. You can change this behaviour here.

Parameters:

  | sl2 | string list
  | i | if 0 then reference counters are honoured

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:

  | sl2 | string list
  | i | if 0 then cases are ignored

const char* GWEN_StringList2Iterator_Data | ( | GWEN_STRINGLIST2_ITERATOR * | li | ) |

GWEN_REFPTR* GWEN_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 | ) |