basic: nulstr-util: add nulstr_get() returning the matching string

Currently `nulstr_contains` returns a boolean, making it difficult to
identify which of the input strings matches the "needle".

Adding a new `nulstr_get()` function, returning a const pointer to the
matching string, eases this process and allows us to directly re-use the
result of a call to this function without additional processing or
memory allocation.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
This commit is contained in:
Arnaud Ferraris
2021-09-15 16:45:58 +02:00
parent 76ab98fa2b
commit 533f11c529
2 changed files with 9 additions and 5 deletions
+4 -4
View File
@@ -3,15 +3,15 @@
#include "nulstr-util.h"
#include "string-util.h"
bool nulstr_contains(const char *nulstr, const char *needle) {
const char* nulstr_get(const char *nulstr, const char *needle) {
const char *i;
if (!nulstr)
return false;
return NULL;
NULSTR_FOREACH(i, nulstr)
if (streq(i, needle))
return true;
return i;
return false;
return NULL;
}
+5 -1
View File
@@ -10,4 +10,8 @@
#define NULSTR_FOREACH_PAIR(i, j, l) \
for ((i) = (l), (j) = strchr((i), 0)+1; (i) && *(i); (i) = strchr((j), 0)+1, (j) = *(i) ? strchr((i), 0)+1 : (i))
bool nulstr_contains(const char *nulstr, const char *needle);
const char* nulstr_get(const char *nulstr, const char *needle);
static inline bool nulstr_contains(const char *nulstr, const char *needle) {
return nulstr_get(nulstr, needle);
}