NAME
stringlist,
sl_init,
sl_add,
sl_free,
sl_find,
sl_delete
- stringlist manipulation functions
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
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;
- sl_str
-
a pointer to the base of the array containing the list.
- sl_max
-
the size of
sl_str.
- sl_cur
-
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
NetBSD1.3.