diff --git a/desmume/src/utils/libfat/directory.cpp b/desmume/src/utils/libfat/directory.cpp index 742556ce6..c707595ad 100644 --- a/desmume/src/utils/libfat/directory.cpp +++ b/desmume/src/utils/libfat/directory.cpp @@ -33,7 +33,6 @@ #include #include #include -#include #include "directory.h" #include "common.h" @@ -42,6 +41,15 @@ #include "bit_ops.h" #include "filetime.h" +#ifdef __APPLE__ +//apple doesn't provide strnlen. how unkind +static size_t strnlen(const char *s, size_t n) +{ + const char *p = (const char *)memchr(s, 0, n); + return(p ? p-s : n); +} +#endif + // Directory entry codes #define DIR_ENTRY_LAST 0x00 #define DIR_ENTRY_FREE 0xE5 diff --git a/desmume/src/utils/libfat/libfat_pc.h b/desmume/src/utils/libfat/libfat_pc.h index 4cc05602a..e6fce10cb 100644 --- a/desmume/src/utils/libfat/libfat_pc.h +++ b/desmume/src/utils/libfat/libfat_pc.h @@ -63,7 +63,11 @@ struct _reent { intptr_t _errno; }; +#ifdef __APPLE__ +typedef __darwin_mode_t mode_t; +#else typedef uint32_t mode_t; +#endif struct DIR_ITER { void* dirStruct; diff --git a/desmume/src/utils/libfat/mem_allocate.h b/desmume/src/utils/libfat/mem_allocate.h index 3308807ad..35e32ec32 100644 --- a/desmume/src/utils/libfat/mem_allocate.h +++ b/desmume/src/utils/libfat/mem_allocate.h @@ -31,7 +31,7 @@ #ifndef _MEM_ALLOCATE_H #define _MEM_ALLOCATE_H -#include +#include static inline void* _FAT_mem_allocate (size_t size) { return malloc (size);