diff --git a/include/PR/os_libc.h b/include/PR/os_libc.h index 4c2fc3e1..e7567516 100644 --- a/include/PR/os_libc.h +++ b/include/PR/os_libc.h @@ -3,14 +3,28 @@ #include "ultratypes.h" -// Old deprecated functions from strings.h, replaced by memcpy/memset. -#ifdef NO_BZERO +// old bstring functions that aren't present on some platforms + +#if defined(__APPLE__) + +// macOS libc has them +#include + +#elif defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 200809L) + +// there's no way that shit's defined, use memcpy/memset #include -#define bzero(buf, size) memset((buf), 0, (size)) -#define bcopy(src, dst, size) memcpy((dst), (src), (size)) +#undef bzero +#undef bcopy +#define bzero(buf, len) memset((buf), 0, (len)) +#define bcopy(src, dst, len) memcpy((dst), (src), (len)) + #else + +// hope for the best extern void bcopy(const void *, void *, size_t); extern void bzero(void *, size_t); + #endif #endif /* !_OS_LIBC_H_ */