From: David Levine Date: Wed, 22 Jan 2014 04:09:49 +0000 (-0600) Subject: Added svector_find() function. X-Git-Url: https://diplodocus.org/git/nmh/commitdiff_plain/349ccb810b6e89b1830dbbe70c9e805a2773fcbe?ds=inline;hp=-c Added svector_find() function. --- 349ccb810b6e89b1830dbbe70c9e805a2773fcbe diff --git a/h/mh.h b/h/mh.h index a47b7c20..3b36141d 100644 --- a/h/mh.h +++ b/h/mh.h @@ -174,6 +174,7 @@ svector_t svector_create (size_t); void svector_free (svector_t); char *svector_push_back (svector_t, char *); char *svector_at (svector_t, size_t); +char **svector_find(svector_t, const char *); char **svector_strs (svector_t); size_t svector_size (svector_t); diff --git a/sbr/vector.c b/sbr/vector.c index ca8c894e..10058d4d 100644 --- a/sbr/vector.c +++ b/sbr/vector.c @@ -174,6 +174,24 @@ svector_at (svector_t vec, size_t i) { return vec->strs[i]; } +/* + * Return address of first element that stringwise matches s. + * The caller can replace the contents of the return address. + */ +char ** +svector_find (svector_t vec, const char *s) { + size_t i; + char **str = vec->strs; + + for (i = 0; i < vec->size; ++i, ++str) { + if (*str && ! strcmp(*str, s)) { + return str; + } + } + + return NULL; +} + char ** svector_strs (svector_t vec) { return vec->strs;