From: René Scharfe Date: Thu, 23 Mar 2017 19:36:29 GMT Subject: Re: [PATCH] refs.c: use skip_prefix() in prettify_refname() Message-ID: <4424eeeb-7eea-ed41-c031-ba7915cb93ab@web.de> In-Reply-To: Am 23.03.2017 um 20:33 schrieb Junio C Hamano: > Jeff King writes: > >> On Thu, Mar 23, 2017 at 08:18:26PM +0100, René Scharfe wrote: >> >>> Am 23.03.2017 um 16:50 schrieb SZEDER Gábor: >>>> This eliminates three magic numbers. >>>> >>>> Signed-off-by: SZEDER Gábor >>>> --- >>>> refs.c | 10 +++++----- >>>> 1 file changed, 5 insertions(+), 5 deletions(-) >>>> >>>> diff --git a/refs.c b/refs.c >>>> index e7606716d..0272e332c 100644 >>>> --- a/refs.c >>>> +++ b/refs.c >>>> @@ -366,11 +366,11 @@ int for_each_glob_ref(each_ref_fn fn, const char *pattern, void *cb_data) >>>> >>>> const char *prettify_refname(const char *name) >>>> { >>>> - return name + ( >>>> - starts_with(name, "refs/heads/") ? 11 : >>>> - starts_with(name, "refs/tags/") ? 10 : >>>> - starts_with(name, "refs/remotes/") ? 13 : >>>> - 0); >>>> + if (skip_prefix(name, "refs/heads/", &name) || >>>> + skip_prefix(name, "refs/tags/", &name) || >>>> + skip_prefix(name, "refs/remotes/", &name)) >>>> + ; /* nothing */ >>>> + return name; >>> >>> Nice, but why add the "if" when it's doing nothing? >> >> It's short-circuiting in the conditional. > > I think René meant this: > > /* just for side effects */ > skip_prefix(name, "refs/heads/", &name) || > skip_prefix(name, "refs/tags/", &name) || > skip_prefix(name, "refs/remotes/", &name); > > return name; > > which still short-sircuits, even though I do think it looks > strange; "correct but strange". Yes. At least to me it looks less strange than the same lines wrapped in "if ... /* nothing */". René