Show 53 quoted lines
> cache.h | 13 +++++++++++++
> replace_object.c | 7 +++++++
> 2 files changed, 20 insertions(+)
>
> diff --git a/cache.h b/cache.h
> index b039abc..9407560 100644
> --- a/cache.h
> +++ b/cache.h
> @@ -798,13 +798,26 @@ static inline void *read_sha1_file(const unsigned char *sha1, enum object_type *
> {
> return read_sha1_file_extended(sha1, type, size, LOOKUP_REPLACE_OBJECT);
> }
> +
> +/*
> + * This internal function is only declared here for the benefit of
> + * lookup_replace_object(). Please do not call it directly.
> + */
> extern const unsigned char *do_lookup_replace_object(const unsigned char *sha1);
> +
> +/*
> + * If object sha1 should be replaced, return the replacement object's
> + * name (replaced recursively, if necessary). The return value is
> + * either sha1 or a pointer to a permanently-allocated value. When
> + * object replacement is suppressed, always return sha1.
> + */
> static inline const unsigned char *lookup_replace_object(const unsigned char *sha1)
> {
> if (!check_replace_refs)
> return sha1;
> return do_lookup_replace_object(sha1);
> }
> +
> static inline const unsigned char *lookup_replace_object_extended(const unsigned char *sha1, unsigned flag)
> {
> if (!(flag & LOOKUP_REPLACE_OBJECT))
> diff --git a/replace_object.c b/replace_object.c
> index c5cf9f4..31fabde 100644
> --- a/replace_object.c
> +++ b/replace_object.c
> @@ -92,6 +92,13 @@ static void prepare_replace_object(void)
> /* We allow "recursive" replacement. Only within reason, though */
> #define MAXREPLACEDEPTH 5
>
> +/*
> + * If a replacement for object sha1 has been set up, return the
> + * replacement object's name (replaced recursively, if necessary).
> + * The return value is either sha1 or a pointer to a
> + * permanently-allocated value. This function always respects replace
> + * references, regardless of the value of check_replace_refs.
> + */
> const unsigned char *do_lookup_replace_object(const unsigned char *sha1)
> {
> int pos, depth = MAXREPLACEDEPTH;