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

[PATCH 1/2] config.mak.uname: Darwin: define HAVE_GETDELIM for modern OS X releases

From
Eric Sunshine <sunshine@sunshineco.com>
Date
Jun 2, 2015, 18:18 UTC
Message-ID
<1433269138-10890-2-git-send-email-sunshine@sunshineco.com>
In-Reply-To
<1433269138-10890-1-git-send-email-sunshine@sunshineco.com>

On Mac OS X, getdelim() first became available with Xcode 4.1[1], which was released the same day as OS X 10.7 "Lion", so assume getdelim() availability from 10.7 onward. (As of this writing, OS X is at 10.10 "Yosemite".)

According to Wikipedia[2], 4.1 was also available for download by paying developers on OS X 10.6 "Snow Leopard", so it's possible that some 10.6 machines may have getdelim(). However, as strbuf's use of getdelim() is purely an optimization, let's be conservative and assume 10.6 and earlier lack getdelim().

[1]: Or, possibly with Xcode 4.0, but that version is no longer
     available for download, or not available to non-paying developers,
     so testing is not possible.
[2]: http://en.wikipedia.org/wiki/Xcode
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
---

Tested on OS X 10.10.3 "Yosemite" with Xcode 6.3.2 and OS X 10.5.8 "Leopard" with Xcode 3.1.

The use of 'expr' in this new test is decidedly different from existing instances which merely check if `uname -R` matches a particular single digit and a period. If the new test took the same approach, it would have to match either one digit (in a particular range) plus a period, or two digits with the first being "1", plus a period. The resulting 'expr' expression quickly becomes ugly and quite difficult to decipher. Hence, the new test instead takes advantage of expr's relational operator '>=' to keep things simple and make the test easy to understand at a glance ("if version >= 11" where 11 is the Darwin major version number of OS X 10.7).

 config.mak.uname | 3 +++
 1 file changed, 3 insertions(+)
diff --git a/config.mak.uname b/config.mak.uname
index d26665f..46a415c 100644
--- a/config.mak.uname
+++ b/config.mak.uname
@@ -102,6 +102,9 @@ ifeq ($(uname_S),Darwin)
 	ifeq ($(shell expr "$(uname_R)" : '[15]\.'),2)
 		NO_STRLCPY = YesPlease
 	endif
+	ifeq ($(shell expr $(shell expr "$(uname_R)" : '\([0-9][0-9]*\)\.') '>=' 11),1)
+		HAVE_GETDELIM = YesPlease
+	endif
 	NO_MEMMEM = YesPlease
 	USE_ST_TIMESPEC = YesPlease
 	HAVE_DEV_TTY = YesPlease
-- 
2.4.2.598.gb4379f4
Previous: Eric SunshineNext: Jeff King
Message 2 of 9 in “auto-detect getdelim()”
  1. 0/2 auto-detect getdelim()Eric Sunshine, Jun 2, 2015
  2. 1/2 config.mak.uname: Darwin: define HAVE_GETDELIM for modern OS X releasesEric Sunshine, Jun 2, 2015
  3. Jeff KingJun 2, 2015
  4. Jeff KingJun 2, 2015
  5. Eric SunshineJun 2, 2015
  6. Jeff KingJun 2, 2015
  7. Eric SunshineJun 2, 2015
  8. 2/2 configure: add getdelim() checkEric Sunshine, Jun 2, 2015
  9. Jeff KingJun 2, 2015

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.