stringlist(3bsd)

stringlist3bsd

Stringlist manipulation functions

Usage

#include <stringlist.h>

(See libbsd(7) for include usage.)

StringList *

sl_init(void);

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

Library

library “libbsd”

Overview

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.

Releases

5 releases since Debian 10 (Buster); the text changed 2 times.

  1. 10
  2. 11
  3. 12–Arch

History

The stringlist functions appeared in FreeBSD 2.2.6 and NetBSD 1.3.

From libbsd 0.12.2-2 in Arch Linux 2026-11-01. Parsed by carta from the page's mdoc source.