changeset 27:02b0ee204042

Added ARRAY_FOREACH_R. Same functionality as ARRAY_FOREACH but reversal.
author David Demelier <markand@malikania.fr>
date Wed, 21 Sep 2011 12:03:23 +0200
parents 4fd9ecbbb143
children 904a373aa120
files array.h
diffstat 1 files changed, 7 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/array.h	Sun Sep 18 14:09:37 2011 +0200
+++ b/array.h	Wed Sep 21 12:03:23 2011 +0200
@@ -52,7 +52,12 @@
 void	array_clear(struct array *);
 void	array_free(struct array *);
 
-#define ARRAY_FOREACH(array, var, i)					\
-	for (i = 0, var = array->data; i < array->length; ++i, ++var)
+#define ARRAY_FOREACH(a, var, i)						\
+	for (i = 0, var = a->data; i < a->length; ++i, ++var)
+
+#define ARRAY_FOREACH_R(a, var, i)						\
+	for (i = 0,								\
+	    var = (void *) ((char *) a->data + a->unit * (a->length - 1));	\
+	    i < a->length; ++i, --var)	
 
 #endif /* _ARRAY_H_ */