{"thread":{"id":"44968","subject":"[PATCH] mingw: allow hooks to be .exe files","startedAt":"2017-01-25T16:58:56Z","lastAt":"2017-01-30T16:54:12Z","messageCount":13,"participants":["Johannes Schindelin","Jeff King","Junio C Hamano","Stefan Beller"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"310162","messageId":"dc388b2df3baee83972f007cd77a57410553a411.1485362812.git.johannes.schindelin@gmx.de","threadId":"44968","inReplyTo":null,"subject":"[PATCH] mingw: allow hooks to be .exe files","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2017-01-25T16:58:42Z","receivedAt":"2017-01-25T16:58:56Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"This change is necessary to allow the files in .git/hooks/ to optionally\nhave the file extension `.exe` on Windows, as the file names are\nhardcoded otherwise.\n\nSigned-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>\n---\nPublished-As: https://github.com/dscho/git/releases/tag/exe-as-hook-v1\nFetch-It-Via: git fetch https://github.com/dscho/git exe-as-hook-v1\n\n run-command.c | 8 +++++++-\n 1 file changed, 7 insertions(+), 1 deletion(-)\n\ndiff --git a/run-command.c b/run-command.c\nindex 73bfba7ef9..45229ef052 100644\n--- a/run-command.c\n+++ b/run-command.c\n@@ -871,8 +871,14 @@ const char *find_hook(const char *name)\n \n \tstrbuf_reset(&path);\n \tstrbuf_git_path(&path, \"hooks/%s\", name);\n-\tif (access(path.buf, X_OK) < 0)\n+\tif (access(path.buf, X_OK) < 0) {\n+#ifdef STRIP_EXTENSION\n+\t\tstrbuf_addstr(&path, \".exe\");\n+\t\tif (access(path.buf, X_OK) >= 0)\n+\t\t\treturn path.buf;\n+#endif\n \t\treturn NULL;\n+\t}\n \treturn path.buf;\n }\n \n\nbase-commit: 4e59582ff70d299f5a88449891e78d15b4b3fabe\n-- \n2.11.1.windows.prerelease.2.3.g7f3eb74\n"},{"id":"310205","messageId":"20170125211529.jq4halip4ndbff5k@sigill.intra.peff.net","threadId":"44968","inReplyTo":"dc388b2df3baee83972f007cd77a57410553a411.1485362812.git.johannes.schindelin@gmx.de","subject":"Re: [PATCH] mingw: allow hooks to be .exe files","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2017-01-25T21:15:30Z","receivedAt":"2017-01-25T21:15:42Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Wed, Jan 25, 2017 at 05:58:42PM +0100, Johannes Schindelin wrote:\n\n> This change is necessary to allow the files in .git/hooks/ to optionally\n> have the file extension `.exe` on Windows, as the file names are\n> hardcoded otherwise.\n\nMake sense as a goal.\n\n> -\tif (access(path.buf, X_OK) < 0)\n> +\tif (access(path.buf, X_OK) < 0) {\n> +#ifdef STRIP_EXTENSION\n> +\t\tstrbuf_addstr(&path, \".exe\");\n\nI think STRIP_EXTENSION is a string.  Should this line be:\n\n  strbuf_addstr(&path, STRIP_EXTENSION);\n\n?\n\n-Peff\n"},{"id":"310215","messageId":"xmqq37g6akfx.fsf@gitster.mtv.corp.google.com","threadId":"44968","inReplyTo":"dc388b2df3baee83972f007cd77a57410553a411.1485362812.git.johannes.schindelin@gmx.de","subject":"Re: [PATCH] mingw: allow hooks to be .exe files","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2017-01-25T21:39:14Z","receivedAt":"2017-01-25T21:39:22Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Schindelin <johannes.schindelin@gmx.de> writes:\n\n> This change is necessary to allow the files in .git/hooks/ to optionally\n> have the file extension `.exe` on Windows, as the file names are\n> hardcoded otherwise.\n\nHmph.  There is no longer \".com\"?\n\nI briefly wondered if hooks/post-receive.{py,rb,...} would be good\nthings to support, but I do not think we want to go there, primarily\nbecause we do not want to deal with \"what happens when there are\nmany?\"\n\nAs Peff pointed out while I was typing this message, \".exe\" would be\nbetter spelled as STRIP_EXTENSION, I think.  The resulting code\nwould read naturally when you read the macro not as \"please do strip\nextensions\" boolean, but as \"this extension is to be stripped\"\nstring, which is how it is used in the other site the macro is used\n(namely, strip_extension() called by handle_builtin()).\n\n> Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>\n> ---\n> Published-As: https://github.com/dscho/git/releases/tag/exe-as-hook-v1\n> Fetch-It-Via: git fetch https://github.com/dscho/git exe-as-hook-v1\n>\n>  run-command.c | 8 +++++++-\n>  1 file changed, 7 insertions(+), 1 deletion(-)\n>\n> diff --git a/run-command.c b/run-command.c\n> index 73bfba7ef9..45229ef052 100644\n> --- a/run-command.c\n> +++ b/run-command.c\n> @@ -871,8 +871,14 @@ const char *find_hook(const char *name)\n>  \n>  \tstrbuf_reset(&path);\n>  \tstrbuf_git_path(&path, \"hooks/%s\", name);\n> -\tif (access(path.buf, X_OK) < 0)\n> +\tif (access(path.buf, X_OK) < 0) {\n> +#ifdef STRIP_EXTENSION\n> +\t\tstrbuf_addstr(&path, \".exe\");\n> +\t\tif (access(path.buf, X_OK) >= 0)\n> +\t\t\treturn path.buf;\n> +#endif\n>  \t\treturn NULL;\n> +\t}\n>  \treturn path.buf;\n>  }\n>  \n>\n> base-commit: 4e59582ff70d299f5a88449891e78d15b4b3fabe\n"},{"id":"310216","messageId":"xmqqy3xy95un.fsf@gitster.mtv.corp.google.com","threadId":"44968","inReplyTo":"20170125211529.jq4halip4ndbff5k@sigill.intra.peff.net","subject":"Re: [PATCH] mingw: allow hooks to be .exe files","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2017-01-25T21:39:44Z","receivedAt":"2017-01-25T21:39:51Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jeff King <peff@peff.net> writes:\n\n> On Wed, Jan 25, 2017 at 05:58:42PM +0100, Johannes Schindelin wrote:\n>\n>> This change is necessary to allow the files in .git/hooks/ to optionally\n>> have the file extension `.exe` on Windows, as the file names are\n>> hardcoded otherwise.\n>\n> Make sense as a goal.\n>\n>> -\tif (access(path.buf, X_OK) < 0)\n>> +\tif (access(path.buf, X_OK) < 0) {\n>> +#ifdef STRIP_EXTENSION\n>> +\t\tstrbuf_addstr(&path, \".exe\");\n>\n> I think STRIP_EXTENSION is a string.  Should this line be:\n>\n>   strbuf_addstr(&path, STRIP_EXTENSION);\n>\n> ?\n\nYup, I think that is more in line with how git.c (the other user of\nthe macro) uses it.\n"},{"id":"310309","messageId":"alpine.DEB.2.20.1701261321010.3469@virtualbox","threadId":"44968","inReplyTo":"20170125211529.jq4halip4ndbff5k@sigill.intra.peff.net","subject":"Re: [PATCH] mingw: allow hooks to be .exe files","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2017-01-26T12:21:20Z","receivedAt":"2017-01-26T12:21:59Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi Peff,\n\nOn Wed, 25 Jan 2017, Jeff King wrote:\n\n> On Wed, Jan 25, 2017 at 05:58:42PM +0100, Johannes Schindelin wrote:\n> \n> > -\tif (access(path.buf, X_OK) < 0)\n> > +\tif (access(path.buf, X_OK) < 0) {\n> > +#ifdef STRIP_EXTENSION\n> > +\t\tstrbuf_addstr(&path, \".exe\");\n> \n> I think STRIP_EXTENSION is a string.  Should this line be:\n> \n>   strbuf_addstr(&path, STRIP_EXTENSION);\n\nYep.\n\nv2 coming,\nJohannes\n"},{"id":"310310","messageId":"9a27b90e771d4c97dc580d344e161d7cf8d632ce.1485433248.git.johannes.schindelin@gmx.de","threadId":"44968","inReplyTo":"dc388b2df3baee83972f007cd77a57410553a411.1485362812.git.johannes.schindelin@gmx.de","subject":"[PATCH v2] mingw: allow hooks to be .exe files","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2017-01-26T12:21:47Z","receivedAt":"2017-01-26T12:22:02Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"\nThis change is necessary to allow the files in .git/hooks/ to optionally\nhave the file extension `.exe` on Windows, as the file names are\nhardcoded otherwise.\n\nSigned-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>\n---\nPublished-As: https://github.com/dscho/git/releases/tag/exe-as-hook-v2\nFetch-It-Via: git fetch https://github.com/dscho/git exe-as-hook-v2\nInterdiff vs v1:\n\n diff --git a/run-command.c b/run-command.c\n index 45229ef052..5227f78aea 100644\n --- a/run-command.c\n +++ b/run-command.c\n @@ -873,7 +873,7 @@ const char *find_hook(const char *name)\n  \tstrbuf_git_path(&path, \"hooks/%s\", name);\n  \tif (access(path.buf, X_OK) < 0) {\n  #ifdef STRIP_EXTENSION\n -\t\tstrbuf_addstr(&path, \".exe\");\n +\t\tstrbuf_addstr(&path, STRIP_EXTENSION);\n  \t\tif (access(path.buf, X_OK) >= 0)\n  \t\t\treturn path.buf;\n  #endif\n\n\n run-command.c | 8 +++++++-\n 1 file changed, 7 insertions(+), 1 deletion(-)\n\ndiff --git a/run-command.c b/run-command.c\nindex 73bfba7ef9..5227f78aea 100644\n--- a/run-command.c\n+++ b/run-command.c\n@@ -871,8 +871,14 @@ const char *find_hook(const char *name)\n \n \tstrbuf_reset(&path);\n \tstrbuf_git_path(&path, \"hooks/%s\", name);\n-\tif (access(path.buf, X_OK) < 0)\n+\tif (access(path.buf, X_OK) < 0) {\n+#ifdef STRIP_EXTENSION\n+\t\tstrbuf_addstr(&path, STRIP_EXTENSION);\n+\t\tif (access(path.buf, X_OK) >= 0)\n+\t\t\treturn path.buf;\n+#endif\n \t\treturn NULL;\n+\t}\n \treturn path.buf;\n }\n \n\nbase-commit: 4e59582ff70d299f5a88449891e78d15b4b3fabe\n-- \n2.11.1.windows.prerelease.2.9.g3014b57\n"},{"id":"310313","messageId":"alpine.DEB.2.20.1701261441290.3469@virtualbox","threadId":"44968","inReplyTo":"xmqq37g6akfx.fsf@gitster.mtv.corp.google.com","subject":"Re: [PATCH] mingw: allow hooks to be .exe files","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2017-01-26T13:45:30Z","receivedAt":"2017-01-26T13:46:21Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi Junio,\n\nOn Wed, 25 Jan 2017, Junio C Hamano wrote:\n\n> Johannes Schindelin <johannes.schindelin@gmx.de> writes:\n> \n> > This change is necessary to allow the files in .git/hooks/ to optionally\n> > have the file extension `.exe` on Windows, as the file names are\n> > hardcoded otherwise.\n> \n> Hmph.  There is no longer \".com\"?\n\nNo, no longer .com. You have to jump through hoops in this century to\nbuild .com files.\n\n> I briefly wondered if hooks/post-receive.{py,rb,...} would be good\n> things to support, but I do not think we want to go there, primarily\n> because we do not want to deal with \"what happens when there are many?\"\n\nThe answer is correct, the reasoning not. The reason why .exe is special:\nit simply won't execute unless it has the .exe file extension. That is not\ntrue for .py, .rb, etc\n\nCiao,\nJohannes\n"},{"id":"310347","messageId":"xmqq4m0l64pg.fsf@gitster.mtv.corp.google.com","threadId":"44968","inReplyTo":"alpine.DEB.2.20.1701261321010.3469@virtualbox","subject":"Re: [PATCH] mingw: allow hooks to be .exe files","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2017-01-26T18:44:59Z","receivedAt":"2017-01-26T18:52:32Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n\n> Hi Peff,\n>\n> On Wed, 25 Jan 2017, Jeff King wrote:\n>\n>> On Wed, Jan 25, 2017 at 05:58:42PM +0100, Johannes Schindelin wrote:\n>> \n>> > -\tif (access(path.buf, X_OK) < 0)\n>> > +\tif (access(path.buf, X_OK) < 0) {\n>> > +#ifdef STRIP_EXTENSION\n>> > +\t\tstrbuf_addstr(&path, \".exe\");\n>> \n>> I think STRIP_EXTENSION is a string.  Should this line be:\n>> \n>>   strbuf_addstr(&path, STRIP_EXTENSION);\n>\n> Yep.\n>\n> v2 coming,\n> Johannes\n\nI think I've already tweaked it out when I queued the original one.\n"},{"id":"310393","messageId":"alpine.DEB.2.20.1701271127520.3469@virtualbox","threadId":"44968","inReplyTo":"xmqq4m0l64pg.fsf@gitster.mtv.corp.google.com","subject":"Re: [PATCH] mingw: allow hooks to be .exe files","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2017-01-27T10:29:59Z","receivedAt":"2017-01-27T10:32:12Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi Junio,\n\nOn Thu, 26 Jan 2017, Junio C Hamano wrote:\n\n> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n> \n> > On Wed, 25 Jan 2017, Jeff King wrote:\n> >\n> >> On Wed, Jan 25, 2017 at 05:58:42PM +0100, Johannes Schindelin wrote:\n> >> \n> >> > -\tif (access(path.buf, X_OK) < 0)\n> >> > +\tif (access(path.buf, X_OK) < 0) {\n> >> > +#ifdef STRIP_EXTENSION\n> >> > +\t\tstrbuf_addstr(&path, \".exe\");\n> >> \n> >> I think STRIP_EXTENSION is a string.  Should this line be:\n> >> \n> >>   strbuf_addstr(&path, STRIP_EXTENSION);\n> >\n> > Yep.\n> >\n> > v2 coming,\n> > Johannes\n> \n> I think I've already tweaked it out when I queued the original one.\n\nAfter digging, I found your SQUASH commit. I had not known about that.\n\nIn any case, I much rather prefer to have the final version of any patch\nor patch series I contribute to be identical between what you commit and\nwhat I sent to the mailing list. We do disagree from time to time, and I\nwould like to have the opportunity of reviewing how you tweak my changes.\n\nCiao,\nJohannes\n"},{"id":"310428","messageId":"CAGZ79kaa5WJmZkyFROfkfNb3++t37qAuAebKJTon2iD2bh+sWw@mail.gmail.com","threadId":"44968","inReplyTo":"alpine.DEB.2.20.1701271127520.3469@virtualbox","subject":"Re: [PATCH] mingw: allow hooks to be .exe files","fromName":"Stefan Beller","fromEmail":"sbeller@google.com","sentAt":"2017-01-27T18:24:17Z","receivedAt":"2017-01-27T18:25:17Z","isPatch":true,"sender":{"key":"stefanbeller@gmail.com","avatar":"https://avatars.githubusercontent.com/u/455868?v=4"},"body":"On Fri, Jan 27, 2017 at 2:29 AM, Johannes Schindelin\n<Johannes.Schindelin@gmx.de> wrote:\n> Hi Junio,\n>\n> On Thu, 26 Jan 2017, Junio C Hamano wrote:\n>\n>> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n>>\n>> > On Wed, 25 Jan 2017, Jeff King wrote:\n>> >\n>> >> On Wed, Jan 25, 2017 at 05:58:42PM +0100, Johannes Schindelin wrote:\n>> >>\n>> >> > -        if (access(path.buf, X_OK) < 0)\n>> >> > +        if (access(path.buf, X_OK) < 0) {\n>> >> > +#ifdef STRIP_EXTENSION\n>> >> > +                strbuf_addstr(&path, \".exe\");\n>> >>\n>> >> I think STRIP_EXTENSION is a string.  Should this line be:\n>> >>\n>> >>   strbuf_addstr(&path, STRIP_EXTENSION);\n>> >\n>> > Yep.\n>> >\n>> > v2 coming,\n>> > Johannes\n>>\n>> I think I've already tweaked it out when I queued the original one.\n>\n> After digging, I found your SQUASH commit. I had not known about that.\n>\n> In any case, I much rather prefer to have the final version of any patch\n> or patch series I contribute to be identical between what you commit and\n> what I sent to the mailing list. We do disagree from time to time, and I\n> would like to have the opportunity of reviewing how you tweak my changes.\n>\n> Ciao,\n> Johannes\n\nI saw the queued up commit and that lead me to this thread here.\nThe commit message, while technically correct, seems a bit off. This is because\nthe commit message only talks about .exe extensions, but the change in code\ndoesn't even have the string \"exe\" mentioned once.\n\nWith this discussion here, it is easy for me to connect the dots, but\nit would be nice\nto have the full picture in the commit message. This is what I would write:\n\n    mingw: allow hooks to be .exe files\n\n    Executable files in Windows need to have the extension '.exe', otherwise\n    they do not work. Extend the hooks to not just look at the hard coded names,\n    but also at the extended names via the custom STRIP_EXTENSION, which\n    is defined as '.exe' in Windows.\n\nStefan\n"},{"id":"310519","messageId":"78a73c9d0a8e38fcc61302d0495533dcc4fab076.1485779272.git.johannes.schindelin@gmx.de","threadId":"44968","inReplyTo":"9a27b90e771d4c97dc580d344e161d7cf8d632ce.1485433248.git.johannes.schindelin@gmx.de","subject":"[PATCH v3] mingw: allow hooks to be .exe files","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2017-01-30T12:28:28Z","receivedAt":"2017-01-30T12:29:22Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Executable files in Windows need to have the extension '.exe', otherwise\nthey do not work. Extend the hooks to not just look at the hard coded\nnames, but also at the names extended by the custom STRIP_EXTENSION,\nwhich is defined as '.exe' in Windows.\n\nSigned-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>\n---\nPublished-As: https://github.com/dscho/git/releases/tag/exe-as-hook-v3\nFetch-It-Via: git fetch https://github.com/dscho/git exe-as-hook-v3\n\n run-command.c | 8 +++++++-\n 1 file changed, 7 insertions(+), 1 deletion(-)\n\ndiff --git a/run-command.c b/run-command.c\nindex 73bfba7ef9..5227f78aea 100644\n--- a/run-command.c\n+++ b/run-command.c\n@@ -871,8 +871,14 @@ const char *find_hook(const char *name)\n \n \tstrbuf_reset(&path);\n \tstrbuf_git_path(&path, \"hooks/%s\", name);\n-\tif (access(path.buf, X_OK) < 0)\n+\tif (access(path.buf, X_OK) < 0) {\n+#ifdef STRIP_EXTENSION\n+\t\tstrbuf_addstr(&path, STRIP_EXTENSION);\n+\t\tif (access(path.buf, X_OK) >= 0)\n+\t\t\treturn path.buf;\n+#endif\n \t\treturn NULL;\n+\t}\n \treturn path.buf;\n }\n \n\nbase-commit: 4e59582ff70d299f5a88449891e78d15b4b3fabe\n-- \n2.11.1.windows.prerelease.2.9.g3014b57\n"},{"id":"310520","messageId":"alpine.DEB.2.20.1701301328390.3469@virtualbox","threadId":"44968","inReplyTo":"CAGZ79kaa5WJmZkyFROfkfNb3++t37qAuAebKJTon2iD2bh+sWw@mail.gmail.com","subject":"Re: [PATCH] mingw: allow hooks to be .exe files","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2017-01-30T12:29:51Z","receivedAt":"2017-01-30T12:30:15Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi Stefan,\n\nOn Fri, 27 Jan 2017, Stefan Beller wrote:\n\n> On Fri, Jan 27, 2017 at 2:29 AM, Johannes Schindelin\n> <Johannes.Schindelin@gmx.de> wrote:\n> > Hi Junio,\n> >\n> > On Thu, 26 Jan 2017, Junio C Hamano wrote:\n> >\n> >> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n> >>\n> >> > On Wed, 25 Jan 2017, Jeff King wrote:\n> >> >\n> >> > v2 coming,\n> \n> The commit message, while technically correct, seems a bit off. This is\n> because the commit message only talks about .exe extensions, but the\n> change in code doesn't even have the string \"exe\" mentioned once.\n> \n> With this discussion here, it is easy for me to connect the dots, but it\n> would be nice to have the full picture in the commit message.\n\nI just sent out v3, using a slightly tweaked version of the commit message\nyou proposed.\n\nCiao,\nDscho\n"},{"id":"310534","messageId":"xmqqr33kwkxd.fsf@gitster.mtv.corp.google.com","threadId":"44968","inReplyTo":"78a73c9d0a8e38fcc61302d0495533dcc4fab076.1485779272.git.johannes.schindelin@gmx.de","subject":"Re: [PATCH v3] mingw: allow hooks to be .exe files","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2017-01-30T16:51:26Z","receivedAt":"2017-01-30T16:54:12Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Schindelin <johannes.schindelin@gmx.de> writes:\n\n> Executable files in Windows need to have the extension '.exe', otherwise\n> they do not work. Extend the hooks to not just look at the hard coded\n> names, but also at the names extended by the custom STRIP_EXTENSION,\n> which is defined as '.exe' in Windows.\n\nWill replace, and looks good enough for 'next'.  Let's stop\niterating and go incremental if/as needed.\n\nThanks.\n"}]}