* [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).