Re: [PATCH 04/13] cat-file: use type enum instead of buffer for -t option
- From
Junio C Hamano <gitster@pobox.com>
- Date
- May 16, 2025, 16:56 UTC
- Message-ID
- <xmqqy0uwv6im.fsf@gitster.g>
- In-Reply-To
- <20250516044947.GD22242@coredump.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 12 quoted lines
> Now that we no longer support OBJECT_INFO_ALLOW_UNKNOWN_TYPE, there is > no need to pass a strbuf into oid_object_info_extended() to record the > type. The regular object_type enum is sufficient to capture all of the > types we will allow. > > This simplifies the code a bit, and will eventually let us drop > object_info's type_name strbuf support. > > Signed-off-by: Jeff King <peff@peff.net> > --- > builtin/cat-file.c | 13 ++++--------- > 1 file changed, 4 insertions(+), 9 deletions(-)
Nice. It is sad that it takes more to lose .type_name but we'll see that happen in a later step.
Show 33 quoted lines
> diff --git a/builtin/cat-file.c b/builtin/cat-file.c
> index 4adc19aa29..67a5ff2b9e 100644
> --- a/builtin/cat-file.c
> +++ b/builtin/cat-file.c
> @@ -109,7 +109,6 @@ static int cat_one_file(int opt, const char *exp_type, const char *obj_name)
> unsigned long size;
> struct object_context obj_context = {0};
> struct object_info oi = OBJECT_INFO_INIT;
> - struct strbuf sb = STRBUF_INIT;
> unsigned flags = OBJECT_INFO_LOOKUP_REPLACE;
> unsigned get_oid_flags =
> GET_OID_RECORD_PATH |
> @@ -132,16 +131,12 @@ static int cat_one_file(int opt, const char *exp_type, const char *obj_name)
> buf = NULL;
> switch (opt) {
> case 't':
> - oi.type_name = &sb;
> + oi.typep = &type;
> if (oid_object_info_extended(the_repository, &oid, &oi, flags) < 0)
> die("git cat-file: could not get object info");
> - if (sb.len) {
> - printf("%s\n", sb.buf);
> - strbuf_release(&sb);
> - ret = 0;
> - goto cleanup;
> - }
> - break;
> + printf("%s\n", type_name(type));
> + ret = 0;
> + goto cleanup;
>
> case 's':
> oi.sizep = &size;