summaryrefslogtreecommitdiff
path: root/src/vector.h
diff options
context:
space:
mode:
authorCarlos Martín Nieto <carlos@cmartin.tk>2011-07-28 23:59:53 +0200
committerCarlos Martín Nieto <carlos@cmartin.tk>2011-08-02 21:42:04 +0200
commitbcf21c556c2bbc46a93e81a19c5f9112dfb8f2c8 (patch)
tree2d847f07b41cad889aaf579b22c58f4909c0e30f /src/vector.h
parentb5b474dd0de88c0decd1bf6f4a4b202c8081bf43 (diff)
downloadlibgit2-bcf21c556c2bbc46a93e81a19c5f9112dfb8f2c8.tar.gz
Add git_vector_foreach
You can use it just as you'd use a for-loop Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Diffstat (limited to 'src/vector.h')
-rw-r--r--src/vector.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/vector.h b/src/vector.h
index 76778ba4e..c43a7ce07 100644
--- a/src/vector.h
+++ b/src/vector.h
@@ -30,6 +30,9 @@ GIT_INLINE(void *) git_vector_get(git_vector *v, unsigned int position)
return (position < v->length) ? v->contents[position] : NULL;
}
+#define git_vector_foreach(v, iter, elem) \
+ for ((iter) = 0; (iter) < (v)->length && ((elem) = (v)->contents[(iter)], 1); (iter)++ )
+
int git_vector_insert(git_vector *v, void *element);
int git_vector_remove(git_vector *v, unsigned int idx);
void git_vector_uniq(git_vector *v);