NAME
stringlist,
sl_init,
sl_add,
sl_free,
sl_find,
sl_delete —
stringlist manipulation functions
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <stringlist.h>
StringList *
sl_init();
int
sl_add(
StringList
*sl,
char *item);
void
sl_free(
StringList
*sl,
int freeall);
char *
sl_find(
StringList
*sl,
const char
*item);
int
sl_delete(
StringList
*sl,
const char
*item,
int freeit);
DESCRIPTION
The
stringlist functions manipulate stringlists, which are
lists of strings that extend automatically if necessary.
The
StringList structure has the following definition:
typedef struct _stringlist {
char **sl_str;
size_t sl_max;
size_t sl_cur;
} StringList;
where:
-
-
- sl_str
- is a pointer to the base of the array containing the
list,
-
-
- sl_max
- is the size of sl_str, and
-
-
- sl_cur
- is the offset in sl_str of the
current element.
The following stringlist manipulation functions are available:
-
-
- sl_init()
- Create a stringlist. Returns a pointer to a
StringList, or
NULL
in case
of failure.
-
-
- sl_free()
- Releases memory occupied by sl and
the sl->sl_str array. If
freeall is non-zero, then each of the items within
sl->sl_str is released as well.
-
-
- sl_add()
- Add item to
sl->sl_str at
sl->sl_cur, extending the size of
sl->sl_str. Returns zero upon success, -1 upon
failure.
-
-
- sl_find()
- Find item in
sl, returning
NULL
if it's
not found.
-
-
- sl_delete()
- Remove item from the list. If
freeit is non-zero, the string is freed. Returns
0
if the name is found and
-1
if the name is not found.
SEE ALSO
free(3),
malloc(3)
HISTORY
The
stringlist functions appeared in
NetBSD
1.3.