]> git.tdb.fi Git - ext/subsurface.git/blobdiff - dive.h
Add helper 'for_each_dive()' dive iterator
[ext/subsurface.git] / dive.h
diff --git a/dive.h b/dive.h
index 7ceab643ad2f1a4ced9661867266ca1ee6ffce06..ab854e37e6c6d49bfe43b6533322cd9facd11c4f 100644 (file)
--- a/dive.h
+++ b/dive.h
@@ -295,6 +295,16 @@ static inline struct dive *get_dive(unsigned int nr)
        return dive_table.dives[nr];
 }
 
+/*
+ * Iterate over each dive, with the first parameter being the index
+ * iterator variable, and the second one being the dive one.
+ *
+ * I don't think anybody really wants the index, and we could make
+ * it local to the for-loop, but that would make us requires C99.
+ */
+#define for_each_dive(_i,_x) \
+       for ((_i) = 0; ((_x) = get_dive(_i)) != NULL; (_i)++)
+
 extern void parse_xml_init(void);
 extern void parse_xml_buffer(const char *url, const char *buf, int size, GError **error);
 extern void set_filename(const char *filename);