From: Jeff King Date: Wed, 16 Mar 2016 17:31:28 GMT Subject: Re: [PATCH] help.c: strip suffix only if the STRIP_EXTENSION defined Message-ID: <20160316173127.GD4039@sigill.intra.peff.net> In-Reply-To: <1458138449-26690-1-git-send-email-kuleshovmail@gmail.com> On Wed, Mar 16, 2016 at 08:27:29PM +0600, Alexander Kuleshov wrote: > We stripping extension in the list_commands_in_dir() to get > commands without '.exe' suffix. Let's do it only if STRIP_EXTENSION > is defined to not spend time for unnecessary strip_suffix() call in > this case. > > Signed-off-by: Alexander Kuleshov > --- > help.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/help.c b/help.c > index 19328ea..c865991 100644 > --- a/help.c > +++ b/help.c > @@ -153,8 +153,9 @@ static void list_commands_in_dir(struct cmdnames *cmds, > continue; > > entlen = strlen(ent); > - strip_suffix(ent, ".exe", &entlen); > - > +#ifdef STRIP_EXTENSION > + strip_suffix(ent, STRIP_EXTENSION, &entlen); > +#endif This is billed as an optimization in the commit message, but these two pieces of code are not the same. The original always strips ".exe", whether or not STRIP_EXTENSION is defined, and whether or not it is ".exe". In practice it works out because people on Unix systems do not have "git-foo.exe", and nobody sets STRIP_EXTENSION to other things. But I tend to think this is an improvement in robustness. I also wonder if this should be sharing the strip_extension() helper added in your 63ca1c0. -Peff