This macro may be used to iterate over revisions, so, instead of doing: struct commit *commit; ... prepare_revision_walk(rev); while ((commit = get_revision(rev)) != NULL) { ... } New code should use: struct commit *commit; ... for_each_revision(commit, rev) { ... } The only disadvantage is that it's something magical, and the fact that it returns a struct commit is not obvious. On the other hand it's documented, has the advantage of making the walking through revisions easier and can save some lines of code. Signed-off-by: Luiz Fernando N Capitulino <lcapitulino@xxxxxxxxxxxxxxx> --- revision.h | 11 +++++++++++ 1 files changed, 11 insertions(+), 0 deletions(-) diff --git a/revision.h b/revision.h index cdf94ad..bb6f475 100644 --- a/revision.h +++ b/revision.h @@ -133,4 +133,15 @@ extern void add_object(struct object *obj, extern void add_pending_object(struct rev_info *revs, struct object *obj, const char *name); extern void add_pending_object_with_mode(struct rev_info *revs, struct object *obj, const char *name, unsigned mode); +/* helpers */ + +/** + * for_each_revision - iterate over revisions + * @commit: pointer to a commit object returned for each iteration + * @rev: revision pointer + */ +#define for_each_revision(commit, rev) \ + prepare_revision_walk(rev); \ + while ((commit = get_revision(rev)) != NULL) + #endif -- 1.5.1.1.320.g1cf2 - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html