]> diplodocus.org Git - nmh/commitdiff
Added svector_find() function.
authorDavid Levine <levinedl@acm.org>
Wed, 22 Jan 2014 04:09:49 +0000 (22:09 -0600)
committerDavid Levine <levinedl@acm.org>
Wed, 22 Jan 2014 04:09:49 +0000 (22:09 -0600)
h/mh.h
sbr/vector.c

diff --git a/h/mh.h b/h/mh.h
index a47b7c20885c197bb71af05d902f0880f0f18998..3b36141d3707a684ca49d087b435f0890f871375 100644 (file)
--- 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);
 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);
 
 char **svector_strs (svector_t);
 size_t svector_size (svector_t);
 
index ca8c894ea398bce0d3f988f72daf4f5f774a3e0c..10058d4da1e8df45c015eeb955ddf57021fecad3 100644 (file)
@@ -174,6 +174,24 @@ svector_at (svector_t vec, size_t i) {
     return vec->strs[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;
 char **
 svector_strs (svector_t vec) {
     return vec->strs;