git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] help.c: strip suffix only if the STRIP_EXTENSION defined
@ 2016-03-16 14:27 Alexander Kuleshov
  2016-03-16 14:47 ` Duy Nguyen
  2016-03-16 17:31 ` Jeff King
  0 siblings, 2 replies; 6+ messages in thread
From: Alexander Kuleshov @ 2016-03-16 14:27 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Git, Alexander Kuleshov

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 <kuleshovmail@gmail.com>
---
 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
 		add_cmdname(cmds, ent, entlen);
 	}
 	closedir(dir);
-- 
2.8.0.rc2.216.g1477fb2.dirty

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] help.c: strip suffix only if the STRIP_EXTENSION defined
  2016-03-16 14:27 [PATCH] help.c: strip suffix only if the STRIP_EXTENSION defined Alexander Kuleshov
@ 2016-03-16 14:47 ` Duy Nguyen
  2016-03-16 16:20   ` Alexander Kuleshov
  2016-03-16 17:31 ` Jeff King
  1 sibling, 1 reply; 6+ messages in thread
From: Duy Nguyen @ 2016-03-16 14:47 UTC (permalink / raw)
  To: Alexander Kuleshov; +Cc: Junio C Hamano, Git

On Wed, Mar 16, 2016 at 9:27 PM, Alexander Kuleshov
<kuleshovmail@gmail.com> 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.

Unless the time saving is significant, I'm against this change. It
makes it harder to spot compile bugs in #ifdef'd code that's only
active on Windows (imagine somebody renames "ent" or change its type).
If you can do something like strip_extension() in git.c, it's better.
Or maybe just refactor that function a bit and share it with help.c

> Signed-off-by: Alexander Kuleshov <kuleshovmail@gmail.com>
> ---
>  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
>                 add_cmdname(cmds, ent, entlen);
>         }
>         closedir(dir);
> --
> 2.8.0.rc2.216.g1477fb2.dirty
>
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
Duy

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] help.c: strip suffix only if the STRIP_EXTENSION defined
  2016-03-16 14:47 ` Duy Nguyen
@ 2016-03-16 16:20   ` Alexander Kuleshov
  0 siblings, 0 replies; 6+ messages in thread
From: Alexander Kuleshov @ 2016-03-16 16:20 UTC (permalink / raw)
  To: Duy Nguyen; +Cc: Junio C Hamano, Git

On Wed, Mar 16, 2016 at 8:47 PM, Duy Nguyen <pclouds@gmail.com> wrote:
> On Wed, Mar 16, 2016 at 9:27 PM, Alexander Kuleshov
> <kuleshovmail@gmail.com> 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.
>
> Unless the time saving is significant, I'm against this change. It
> makes it harder to spot compile bugs in #ifdef'd code that's only
> active on Windows (imagine somebody renames "ent" or change its type).
> If you can do something like strip_extension() in git.c, it's better.
> Or maybe just refactor that function a bit and share it with help.c

Yes, agree. Will think about this.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] help.c: strip suffix only if the STRIP_EXTENSION defined
  2016-03-16 14:27 [PATCH] help.c: strip suffix only if the STRIP_EXTENSION defined Alexander Kuleshov
  2016-03-16 14:47 ` Duy Nguyen
@ 2016-03-16 17:31 ` Jeff King
  2016-03-16 17:36   ` Alexander Kuleshov
  1 sibling, 1 reply; 6+ messages in thread
From: Jeff King @ 2016-03-16 17:31 UTC (permalink / raw)
  To: Alexander Kuleshov; +Cc: Junio C Hamano, Git

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 <kuleshovmail@gmail.com>
> ---
>  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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] help.c: strip suffix only if the STRIP_EXTENSION defined
  2016-03-16 17:31 ` Jeff King
@ 2016-03-16 17:36   ` Alexander Kuleshov
  2016-03-16 17:39     ` Jeff King
  0 siblings, 1 reply; 6+ messages in thread
From: Alexander Kuleshov @ 2016-03-16 17:36 UTC (permalink / raw)
  To: Jeff King; +Cc: Junio C Hamano, Git

Hello Jeff,

On Wed, Mar 16, 2016 at 11:31 PM, Jeff King <peff@peff.net> wrote:
> 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.

Yes, I want to move strip_extension() (from 63ca1c0) to the git-compat-util.h
and adapt/reuse it in the help.c. What do you think about this?

Thank you.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] help.c: strip suffix only if the STRIP_EXTENSION defined
  2016-03-16 17:36   ` Alexander Kuleshov
@ 2016-03-16 17:39     ` Jeff King
  0 siblings, 0 replies; 6+ messages in thread
From: Jeff King @ 2016-03-16 17:39 UTC (permalink / raw)
  To: Alexander Kuleshov; +Cc: Junio C Hamano, Git

On Wed, Mar 16, 2016 at 11:36:49PM +0600, Alexander Kuleshov wrote:

> > I also wonder if this should be sharing the strip_extension() helper
> > added in your 63ca1c0.
> 
> Yes, I want to move strip_extension() (from 63ca1c0) to the git-compat-util.h
> and adapt/reuse it in the help.c. What do you think about this?

Naively, it sounds like a good idea to me, but I haven't looked too
hard. There may be complications in the interface (it looks like the
helper wants to make a new string, but one in help.c makes its own copy
into the flex-array struct).

-Peff

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-03-16 17:39 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-16 14:27 [PATCH] help.c: strip suffix only if the STRIP_EXTENSION defined Alexander Kuleshov
2016-03-16 14:47 ` Duy Nguyen
2016-03-16 16:20   ` Alexander Kuleshov
2016-03-16 17:31 ` Jeff King
2016-03-16 17:36   ` Alexander Kuleshov
2016-03-16 17:39     ` Jeff King

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).