Re: [PATCH 3/4] grep: simplify color setup
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Nov 21, 2020, 22:46 UTC
- Message-ID
- <xmqq4klis4zt.fsf@gitster.c.googlers.com>
- In-Reply-To
- <20201121202310.GA972561@coredump.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 15 quoted lines
> On Sat, Nov 21, 2020 at 07:31:09PM +0100, Martin Ågren wrote: > >> The previous commit left us with only one user of the one-line wrapper >> `color_set()`. We could inline it, but note how we're `xsnprintf()`-ing >> all the entries in one array into another array of the same type. We >> might as well just `memcpy()` everything into place. >> >> Signed-off-by: Martin Ågren <martin.agren@gmail.com> >> --- >> Cc-ing Peff, who initially introduced this helper. After having inlined >> the function into the for loop, it seemed better to just copy the whole >> array. Happy to hear arguments against. > > No, this is way better than the existing code. I introduced it to get > away from strcpy(), but this is better still. But...
Yes, the copy in this patch looks eminently sensible.
Show 7 quoted lines
>> Come to think of it, I suppose we could copy the whole struct and not >> just the color array. Hmmm... > > Yes, this seems even better. If our goal is just to start our new > grep_opt the same as grep_defaults, then a single-line struct copy > (whether through assignment or memcpy) is even clearer and more > maintainable.
... until such a time when typeof(grep_defaults) gains a field with a non-const pointer value that we'd rather not to share amongst instances of the type, at which point it no longer is clear win from maintainability's point of view.