diff options
author | Junio C Hamano <gitster@pobox.com> | 2014-07-21 11:17:45 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-07-21 11:17:45 -0700 |
commit | dadb89d92ce9c81846c1b4c743a41b6e845b572c (patch) | |
tree | 68ac1de1b3aaa912b83ff39d084f39ed8a07ea22 /commit.c | |
parent | da33a97998f6d6206c08bd72a527f5b8e6e26d33 (diff) | |
parent | 063da62b02aeafe58fdacce0ea48c0761b06df60 (diff) | |
download | git-dadb89d92ce9c81846c1b4c743a41b6e845b572c.tar.gz |
Merge branch 'cc/for-each-mergetag'
* cc/for-each-mergetag:
commit: add for_each_mergetag()
Diffstat (limited to 'commit.c')
-rw-r--r-- | commit.c | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -1310,6 +1310,19 @@ struct commit_extra_header *read_commit_extra_headers(struct commit *commit, return extra; } +void for_each_mergetag(each_mergetag_fn fn, struct commit *commit, void *data) +{ + struct commit_extra_header *extra, *to_free; + + to_free = read_commit_extra_headers(commit, NULL); + for (extra = to_free; extra; extra = extra->next) { + if (strcmp(extra->key, "mergetag")) + continue; /* not a merge tag */ + fn(commit, extra, data); + } + free_commit_extra_headers(to_free); +} + static inline int standard_header_field(const char *field, size_t len) { return ((len == 4 && !memcmp(field, "tree ", 5)) || |