svec: New convenience macro SVEC_FOR_EACH.
authorBen Pfaff <blp@nicira.com>
Thu, 30 Jul 2009 20:41:21 +0000 (13:41 -0700)
committerBen Pfaff <blp@nicira.com>
Fri, 7 Aug 2009 22:05:47 +0000 (15:05 -0700)
lib/svec.h

index 7d8777f..e1736bc 100644 (file)
@@ -57,4 +57,13 @@ char *svec_join(const struct svec *,
 const char *svec_back(const struct svec *);
 void svec_pop_back(struct svec *);
 
+/* Iterates over the names in SVEC, assigning each name in turn to NAME and its
+ * index to INDEX. */
+#define SVEC_FOR_EACH(INDEX, NAME, SVEC)        \
+    for ((INDEX) = 0;                           \
+         ((INDEX) < (SVEC)->n                   \
+          ? (NAME) = (SVEC)->names[INDEX], 1    \
+          : 0);                                 \
+         (INDEX)++)
+
 #endif /* svec.h */