diff --git a/src/doomtype.h b/src/doomtype.h index 548e88272..3326de4dc 100644 --- a/src/doomtype.h +++ b/src/doomtype.h @@ -130,6 +130,15 @@ char *strcasestr(const char *in, const char *what); #define HAVE_DOSSTR_FUNCS #endif +#if defined (__APPLE__) + #define SRB2_HAVE_STRLCPY +#elif defined (__GLIBC_PREREQ) + // glibc 2.38: added strlcpy and strlcat to _DEFAULT_SOURCE + #if __GLIBC_PREREQ(2, 38) + #define SRB2_HAVE_STRLCPY + #endif +#endif + #ifndef HAVE_DOSSTR_FUNCS int strupr(char *n); // from dosstr.c int strlwr(char *n); // from dosstr.c @@ -137,7 +146,7 @@ int strlwr(char *n); // from dosstr.c #include // for size_t -#ifndef __APPLE__ +#ifndef SRB2_HAVE_STRLCPY #ifndef __cplusplus size_t strlcat(char *dst, const char *src, size_t siz); size_t strlcpy(char *dst, const char *src, size_t siz); diff --git a/src/string.c b/src/string.c index e430c5cc3..8fa49f9b7 100644 --- a/src/string.c +++ b/src/string.c @@ -15,7 +15,7 @@ #include #include "doomdef.h" -#if !defined (__APPLE__) +#ifndef SRB2_HAVE_STRLCPY // Like the OpenBSD version, but it doesn't check for src not being a valid // C string.