Re: [PATCH v8 8/8] ls-tree.c: introduce "--format" option
- From
Teng Long <dyroneteng@gmail.com>
- Date
- Jan 5, 2022, 09:40 UTC
- Message-ID
- <CADMgQSQ8+2pMdabbyCqZo4F8SRp-VH6wjD6tEx83m6FQhiwUHw@mail.gmail.com>
- In-Reply-To
- <nycvar.QRO.7.76.6.2201041615560.7076@tvgsbejvaqbjf.bet>
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> In addition to that, you need these to quiet down the `linux-leaks` job of > our CI build, which is also failing with your patches:
Thanks. I will fix it in next patch.
Johannes Schindelin <Johannes.Schindelin@gmx.de> 于2022年1月4日周二 23:17写道:
Show 64 quoted lines
>
> Hi Teng,
>
> On Tue, 4 Jan 2022, Johannes Schindelin wrote:
>
> > -- snip --
> > diff --git a/builtin/ls-tree.c b/builtin/ls-tree.c
> > index 6e3e5a4d0634..8301d1a15f9a 100644
> > --- a/builtin/ls-tree.c
> > +++ b/builtin/ls-tree.c
> > @@ -75,7 +75,7 @@ static void expand_objectsize(struct strbuf *line, const struct object_id *oid,
> > else
> > strbuf_addf(line, "%" PRIuMAX, (uintmax_t)size);
> > } else if (padded) {
> > - strbuf_addf(line, "%7s", "-");
> > + strbuf_addstr(line, "-");
> > } else {
> > strbuf_addstr(line, "-");
> > }
> > @@ -110,7 +110,7 @@ static size_t expand_show_tree(struct strbuf *line, const char *start,
> > } else if (skip_prefix(start, "(size)", &p)) {
> > expand_objectsize(line, data->oid, data->type, 0);
> > } else if (skip_prefix(start, "(object)", &p)) {
> > - strbuf_addstr(line, find_unique_abbrev(data->oid, abbrev));
> > + strbuf_add_unique_abbrev(line, data->oid, abbrev);
> > } else if (skip_prefix(start, "(file)", &p)) {
> > const char *name = data->base->buf;
> > const char *prefix = chomp_prefix ? ls_tree_prefix : NULL;
> > @@ -119,7 +119,7 @@ static size_t expand_show_tree(struct strbuf *line, const char *start,
> > strbuf_addstr(data->base, data->pathname);
> > name = relative_path(data->base->buf, prefix, &sb);
> > quote_c_style(name, "ed, NULL, 0);
> > - strbuf_addstr(line, quoted.buf);
> > + strbuf_addbuf(line, "ed);
> > } else {
> > errlen = (unsigned long)len;
> > die(_("bad ls-tree format: %%%.*s"), errlen, start);
> > -- snap --
>
> In addition to that, you need these to quiet down the `linux-leaks` job of
> our CI build, which is also failing with your patches:
>
> -- snipsnap --
> diff --git a/builtin/ls-tree.c b/builtin/ls-tree.c
> index 8301d1a15f9a..0dc0327e4785 100644
> --- a/builtin/ls-tree.c
> +++ b/builtin/ls-tree.c
> @@ -120,6 +120,8 @@ static size_t expand_show_tree(struct strbuf *line, const char *start,
> name = relative_path(data->base->buf, prefix, &sb);
> quote_c_style(name, "ed, NULL, 0);
> strbuf_addbuf(line, "ed);
> + strbuf_release(&sb);
> + strbuf_release("ed);
> } else {
> errlen = (unsigned long)len;
> die(_("bad ls-tree format: %%%.*s"), errlen, start);
> @@ -197,6 +199,7 @@ static int show_tree_fmt(const struct object_id *oid, struct strbuf *base,
> strbuf_expand(&line, format, expand_show_tree, &data);
> strbuf_addch(&line, line_termination);
> fwrite(line.buf, line.len, 1, stdout);
> + strbuf_release(&line);
> strbuf_setlen(base, baselen);
> return retval;
> }