stringlist, sl_init, sl_add, sl_free, sl_find, sl_delete — stringlist manipulation functions
Contents
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.
History
The stringlist functions appeared in FreeBSD 2.2.6 and NetBSD 1.3.
Debian May 6, 2010 stringlist(3bsd)
Library
Utility functions from BSD systems (libbsd, -lbsd)
Name
stringlist, sl_init, sl_add, sl_free, sl_find, sl_delete — stringlist manipulation functions
See Also
free(3), malloc(3)
Synopsis
#include<stringlist.h>
(See libbsd(7) for include usage.)
StringList*sl_init(void);
intsl_add(StringList*sl, char*item);
voidsl_free(StringList*sl, intfreeall);
char*sl_find(StringList*sl, constchar*item);
intsl_delete(StringList*sl, constchar*item, intfreeit);
