Re: [PATCH 2/2] checkout-index: omit entries with no tempname from --temp output
- From
Matheus Tavares Bernardino <matheus.bernardino@usp.br>
- Date
- Feb 9, 2021, 21:57 UTC
- Message-ID
- <CAHd-oW4ddei-bRZkQUSpMevyZYgOBi2T6uQPzJ_XscTmfxhWtw@mail.gmail.com>
- In-Reply-To
- <xmqqmtwczzyv.fsf@gitster.c.googlers.com>
On Tue, Feb 9, 2021 at 6:35 PM Junio C Hamano <gitster@pobox.com> wrote:
Show 51 quoted lines
>
> Matheus Tavares <matheus.bernardino@usp.br> writes:
>
> > if (CHECKOUT_ALL == checkout_stage) {
> > - for (i = 1; i < 4; i++) {
> > - if (i > 1)
> > - putchar(' ');
> > - if (topath[i][0])
> > - fputs(topath[i], stdout);
> > - else
> > - putchar('.');
> > + for (i = 1; i < 4; i++)
> > + if (topath[i][0]) {
> > + have_tempname = 1;
> > + break;
> > + }
> > +
> > + if (have_tempname) {
> > + for (i = 1; i < 4; i++) {
> > + if (i > 1)
> > + putchar(' ');
> > + if (topath[i][0])
> > + fputs(topath[i], stdout);
> > + else
> > + putchar('.');
> > + }
> > }
> > - } else
> > + } else if (topath[checkout_stage][0]) {
> > + have_tempname = 1;
> > fputs(topath[checkout_stage], stdout);
> > + }
> >
> > - putchar('\t');
> > - write_name_quoted_relative(name, prefix, stdout,
> > - nul_term_line ? '\0' : '\n');
> > + if (have_tempname) {
> > + putchar('\t');
> > + write_name_quoted_relative(name, prefix, stdout,
> > + nul_term_line ? '\0' : '\n');
> >
> > - for (i = 0; i < 4; i++) {
> > - topath[i][0] = 0;
> > + for (i = 0; i < 4; i++) {
> > + topath[i][0] = 0;
> > + }
> > }
>
> Hmph, is topath[][] array used after this function gets called and
> in what way? Whether have_tempname is true or not, wouldn't we want
> to clear it?Yeah, topath[][] can be reused in the next checkout_entry() call. But if have_tempname is false, the positions that are going to be used again (either checkout_stage or 1, 2, and 3, if checkout_stage == CHECKOUT_ALL) will be already empty. So I think we only need to clear topath[][] when have_tempname is false.