Re: [PATCH] Lose perl dependency. (fwd)
Johannes Schindelin wrote:
Show 42 quoted lines
> @@ -1285,6 +1289,27 @@ struct commit *get_revision(struct rev_info *revs)
> {
> struct commit *c = NULL;
>
> + if (revs->reverse) {
> + struct commit_list *list;
> +
> + if (revs->reverse == 1) {
> + revs->reverse = 0;
> + list = NULL;
> + while ((c = get_revision(revs)))
> + commit_list_insert(c, &list);
> + revs->commits = list;
> + revs->reverse = 2;
> + }
> +
> + if (!revs->commits)
> + return NULL;
> + c = revs->commits->item;
> + list = revs->commits->next;
> + free(revs->commits);
> + revs->commits = list;
> + return c;
> + }
> +
> if (0 < revs->skip_count) {
> while ((c = get_revision_1(revs)) != NULL) {
> if (revs->skip_count-- <= 0)
> diff --git a/revision.h b/revision.h
> index d93481f..5fec184 100644
> --- a/revision.h
> +++ b/revision.h
> @@ -42,7 +42,8 @@ struct rev_info {
> unpacked:1, /* see also ignore_packed below */
> boundary:1,
> left_right:1,
> - parents:1;
> + parents:1,
> + reverse:2;
>
> /* Diff flags */
> unsigned int diff:1,I like this. However, rev_info.reverse needs some documentation. Or the block in get_revision does:
/*
* rev_info.reverse is used to note the fact that we want to output the list
* of revisions in reverse order. To accomplish this goal, reverse can have
* different values:
* 0 do nothing
* 1 reverse the list
* 2 internal use: we have already obtained and reversed the list,
* now we only need to yield its items.
*/
cheers
simon
--
Serve - BSD +++ RENT this banner advert +++ ASCII Ribbon /"\
Work - Mac +++ space for low €€€ NOW!1 +++ Campaign \ /
Party Enjoy Relax | http://dragonflybsd.org Against HTML \
Dude 2c 2 the max ! http://golden-apple.biz Mail + News / \