logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

stringlist, sl_init, sl_add, sl_free, sl_find, sl_delete — stringlist manipulation functions

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);

See Also