sl_add(3) stringlist manipulation functions

Other Alias

stringlist, sl_init, sl_free, sl_find, sl_delete


Lb libbsd


In bsd/stringlist.h 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


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;


is a pointer to the base of the array containing the list,
is the size of sl_str and
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.


The functions appeared in Fx 2.2.6 and Nx 1.3 .