sha1_file: add a "read_sha1_file_repl" function
[gitweb.git] / sha1_file.c
index 4bf24ffcf6dd45a80a64df937e724c70c57aaca4..9119b795bd2c39d91731f181a304e9575c0564f5 100644 (file)
@@ -2145,8 +2145,10 @@ static void *read_object(const unsigned char *sha1, enum object_type *type,
        return read_packed_sha1(sha1, type, size);
 }
 
-void *read_sha1_file(const unsigned char *sha1, enum object_type *type,
-                    unsigned long *size)
+void *read_sha1_file_repl(const unsigned char *sha1,
+                         enum object_type *type,
+                         unsigned long *size,
+                         const unsigned char **replacement)
 {
        const unsigned char *repl = lookup_replace_object(sha1);
        void *data = read_object(repl, type, size);
@@ -2160,6 +2162,9 @@ void *read_sha1_file(const unsigned char *sha1, enum object_type *type,
        if (!data && (has_loose_object(repl) || has_packed_and_bad(repl)))
                die("object %s is corrupted", sha1_to_hex(repl));
 
+       if (replacement)
+               *replacement = repl;
+
        return data;
 }