]> git.ipfire.org Git - thirdparty/git.git/blobdiff - oidset.c
Merge branch 'en/strmap'
[thirdparty/git.git] / oidset.c
index 15d4e18c37353bf0f186155de78f1af322fd855c..5aac633c1f405580447001dfae114660e6120e90 100644 (file)
--- a/oidset.c
+++ b/oidset.c
@@ -42,6 +42,12 @@ int oidset_size(struct oidset *set)
 }
 
 void oidset_parse_file(struct oidset *set, const char *path)
+{
+       oidset_parse_file_carefully(set, path, NULL, NULL);
+}
+
+void oidset_parse_file_carefully(struct oidset *set, const char *path,
+                                oidset_parse_tweak_fn fn, void *cbdata)
 {
        FILE *fp;
        struct strbuf sb = STRBUF_INIT;
@@ -68,6 +74,8 @@ void oidset_parse_file(struct oidset *set, const char *path)
 
                if (parse_oid_hex(sb.buf, &oid, &p) || *p != '\0')
                        die("invalid object name: %s", sb.buf);
+               if (fn && fn(&oid, cbdata))
+                       continue;
                oidset_insert(set, &oid);
        }
        if (ferror(fp))