STRINGLIST
Section: Misc. Reference Manual Pages (3bsd)
Page Index
BSD mandoc
NAME
stringlist
sl_init
sl_add
sl_free
sl_find
sl_delete
- stringlist manipulation functions
LIBRARY
Lb libbsd
SYNOPSIS
In stringlist.h
(See
libbsd(7)
for include usage.)
Ft StringList *
Fn sl_init void
Ft int
Fn sl_add StringList *sl char *item
Ft void
Fn sl_free StringList *sl int freeall
Ft char *
Fn sl_find StringList *sl const char *item
Ft int
Fn sl_delete StringList *sl const char *item int freeit
DESCRIPTION
The
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:
- Fn sl_init
-
Create a stringlist.
Returns a pointer to a
StringList
or
NULL
in case of failure.
- Fn 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.
- Fn 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.
- Fn sl_find
-
Find
item
in
sl
returning
NULL
if it's not found.
- Fn 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
functions appeared in
Fx 2.2.6
and
Nx 1.3 .