summaryrefslogtreecommitdiff
path: root/strv.h
blob: cc21eb19303010cac2c79a9bafeef17cbece5928 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/*-*- Mode: C; c-basic-offset: 8 -*-*/

#ifndef foostrvhfoo
#define foostrvhfoo

#include "macro.h"

char *strv_find(char **l, const char *name);
void strv_free(char **l);
char **strv_copy(char **l);
unsigned strv_length(char **l);

char **strv_merge(char **a, char **b);

bool strv_contains(char **l, const char *s);

char **strv_new(const char *x, ...) __sentinel;

#define STRV_FOREACH(s, l)                      \
        for ((s) = (l); (s) && *(s); (s)++)

#define STRV_FOREACH_BACKWARDS(s, l)            \
        for (; (l) && ((s) >= (l)); (s)--)

#endif