changeset 15224:2592b701a4f2 draft

(svn r19853) -Fix [FS#3840]: revert r19781 and apply a more sensible version with the same effect
author rubidium <rubidium@openttd.org>
date Tue, 18 May 2010 21:17:25 +0000
parents 809a403417d6
children 2a006637434c
files src/os/unix/crashlog_unix.cpp src/stdafx.h src/string_func.h
diffstat 3 files changed, 11 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/os/unix/crashlog_unix.cpp
+++ b/src/os/unix/crashlog_unix.cpp
@@ -27,6 +27,10 @@
 #	include <dlfcn.h>
 #endif
 
+#if defined(__NetBSD__)
+#include <unistd.h>
+#endif
+
 /**
  * Unix implementation for the crash logger.
  */
--- a/src/stdafx.h
+++ b/src/stdafx.h
@@ -24,9 +24,6 @@
 #elif defined(__NDS__)
 	#include <nds/jtypes.h>
 	#define TROUBLED_INTS
-#elif defined(__NetBSD__)
-	#include <unistd.h>
-	#define _GNU_SOURCE
 #endif
 
 /* It seems that we need to include stdint.h before anything else
--- a/src/string_func.h
+++ b/src/string_func.h
@@ -246,13 +246,18 @@
 	;
 }
 
-#ifndef _GNU_SOURCE
+/* Needed for NetBSD version (so feature) testing */
+#ifdef __NetBSD__
+#include <sys/param.h>
+#endif
+
+#if !defined(_GNU_SOURCE) && !(defined(__NetBSD_Version__) && 400000000 < __NetBSD_Version__ )
 /* strndup is a GNU extension */
 char *strndup(const char *s, size_t len);
 #endif /* !_GNU_SOURCE */
 
 /* strcasestr is available for _GNU_SOURCE, BSD and some Apple */
-#if defined(_GNU_SOURCE) || (defined(__BSD_VISIBLE) && __BSD_VISIBLE) || (defined(__APPLE__) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)))
+#if defined(_GNU_SOURCE) || (defined(__BSD_VISIBLE) && __BSD_VISIBLE) || (defined(__APPLE__) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))) || _NETBSD_SOURCE
 #	undef DEFINE_STRCASESTR
 #else
 #	define DEFINE_STRCASESTR