git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 08/14] help.c: Fix detection of custom merge strategy on cygwin

From
Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Date
Dec 16, 2010, 21:12 UTC
Message-ID
<4D0A80C5.4020003@ramsay1.demon.co.uk>
In-Reply-To
<201012142138.37679.j6t@kdbg.org>
Johannes Sixt wrote:
Show 20 quoted lines
> On Dienstag, 14. Dezember 2010, Ramsay Jones wrote:
>> @@ -126,7 +126,10 @@ static int is_executable(const char *name)
>>  	    !S_ISREG(st.st_mode))
>>  		return 0;
>>
>> -#ifdef WIN32
>> +#if defined(WIN32) || defined(__CYGWIN__)
>> +#if defined(__CYGWIN__)
>> +if ((st.st_mode & S_IXUSR) == 0)
>> +#endif
>>  {	/* cannot trust the executable bit, peek into the file instead */
>>  	char buf[3] = { 0 };
>>  	int n;
> 
> Do you gain a lot by this extra condition? Wouldn't
> 
> -#ifdef WIN32
> +#if defined(WIN32) || defined(__CYGWIN__)
> 
> be sufficient?

Yes, that would be sufficient. No, I probably don't gain a great deal (but I have *not* timed it), since the number of files that are tested by is_executable() is fairly low anyway since they are already filtered by a filename prefix (eg. git-merge-).

However, if the executable bit is set, then executing the WIN32 code block is wasted effort (we already know the answer), so why bother?

ATB, Ramsay Jones

Previous: Johannes SixtNext: Johannes Sixt
Message 6 of 8 in “help.c: Fix detection of custom merge strategy on cygwin”
  1. 08/14 help.c: Fix detection of custom merge strategy on cygwinRamsay Jones, Dec 14, 2010
  2. Erik Faye-LundDec 14, 2010
  3. Ramsay JonesDec 16, 2010
  4. Erik Faye-LundDec 16, 2010
  5. Johannes SixtDec 14, 2010
  6. Ramsay JonesDec 16, 2010
  7. Johannes SixtDec 17, 2010
  8. Ramsay JonesDec 18, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.