From: Han Xin <hanxin.hx@xxxxxxxxxxxxxxx> There are 3 places where "xsnprintf" is used to generate the object header, and I originally planned to add a fourth in the latter patch. According to Ævar Arnfjörð Bjarmason’s suggestion, although it's just one line, it's also code that's very central to git, so reafactor them into a function which will help later readability. Helped-by: Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> Signed-off-by: Han Xin <hanxin.hx@xxxxxxxxxxxxxxx> --- object-file.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/object-file.c b/object-file.c index 32acf1dad6..95fcd5435d 100644 --- a/object-file.c +++ b/object-file.c @@ -1006,6 +1006,14 @@ void *xmmap(void *start, size_t length, return ret; } +static inline int generate_object_header(char *buf, int bufsz, + const char *type_name, + unsigned long size) +{ + return xsnprintf(buf, bufsz, "%s %"PRIuMAX, type_name, + (uintmax_t)size) + 1; +} + /* * With an in-core object data in "map", rehash it to make sure the * object name actually matches "oid" to detect object corruption. @@ -1034,7 +1042,7 @@ int check_object_signature(struct repository *r, const struct object_id *oid, return -1; /* Generate the header */ - hdrlen = xsnprintf(hdr, sizeof(hdr), "%s %"PRIuMAX , type_name(obj_type), (uintmax_t)size) + 1; + hdrlen = generate_object_header(hdr, sizeof(hdr), type_name(obj_type), size); /* Sha1.. */ r->hash_algo->init_fn(&c); @@ -1734,7 +1742,7 @@ static void write_object_file_prepare(const struct git_hash_algo *algo, git_hash_ctx c; /* Generate the header */ - *hdrlen = xsnprintf(hdr, *hdrlen, "%s %"PRIuMAX , type, (uintmax_t)len)+1; + *hdrlen = generate_object_header(hdr, *hdrlen, type, len); /* Sha1.. */ algo->init_fn(&c); @@ -2013,7 +2021,7 @@ int force_object_loose(const struct object_id *oid, time_t mtime) buf = read_object(the_repository, oid, &type, &len); if (!buf) return error(_("cannot read object for %s"), oid_to_hex(oid)); - hdrlen = xsnprintf(hdr, sizeof(hdr), "%s %"PRIuMAX , type_name(type), (uintmax_t)len) + 1; + hdrlen = generate_object_header(hdr, sizeof(hdr), type_name(type), len); ret = write_loose_object(oid, hdr, hdrlen, buf, len, mtime, 0); free(buf); -- 2.34.1.52.gfcc2252aea.agit.6.5.6