mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r14154) -Fix (r14153): strndup is a GNU extension, so it doesn't exist on all platforms
This commit is contained in:
parent
ae32d158cb
commit
2ddb86eea5
|
@ -145,6 +145,11 @@
|
|||
#include <malloc.h> // alloca()
|
||||
#endif
|
||||
|
||||
#if defined(__MINGW32__) && defined(_GNU_SOURCE)
|
||||
/* For some weird reasons, SDL defines _GNU_SOURCE */
|
||||
#undef _GNU_SOURCE
|
||||
#endif
|
||||
|
||||
#if defined(WIN32)
|
||||
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
|
||||
#endif
|
||||
|
|
|
@ -304,3 +304,14 @@ size_t Utf8TrimString(char *s, size_t maxlen)
|
|||
*s = '\0';
|
||||
return length;
|
||||
}
|
||||
|
||||
#ifndef _GNU_SOURCE
|
||||
#include "core/math_func.hpp"
|
||||
char *strndup(const char *s, size_t len)
|
||||
{
|
||||
len = min(strlen(s), len);
|
||||
char *tmp = CallocT<char>(len + 1);
|
||||
memcpy(tmp, s, len);
|
||||
return tmp;
|
||||
}
|
||||
#endif /* !_GNU_SOURCE */
|
||||
|
|
|
@ -156,4 +156,9 @@ static inline bool IsWhitespace(WChar c)
|
|||
;
|
||||
}
|
||||
|
||||
#endif /* STRING_FUNC_H */
|
||||
#ifndef _GNU_SOURCE
|
||||
/* strndup is a GNU extension */
|
||||
char *strndup(const char *s, size_t len);
|
||||
#endif /* WIN32 || SUNOS */
|
||||
|
||||
#endif /* !_GNU_SOURCE */
|
||||
|
|
Loading…
Reference in New Issue