diff --git a/src/misc/cross.cpp b/src/misc/cross.cpp index 80b2324b..8fbefbfc 100644 --- a/src/misc/cross.cpp +++ b/src/misc/cross.cpp @@ -85,7 +85,7 @@ void Cross::CreatePlatformConfigDir(std::string& in) { in += "\\DOSBox"; mkdir(in.c_str()); #elif defined(MACOSX) - in = "~/Library/Preferences/"; + in = "~/Library/Preferences"; ResolveHomedir(in); //Don't create it. Assume it exists #else @@ -155,6 +155,7 @@ dir_information* open_directory(const char* dirname) { } bool read_directory_first(dir_information* dirp, char* entry_name, bool& is_directory) { + if (!dirp) return false; dirp->handle = FindFirstFile(dirp->base_path, &dirp->search_data); if (INVALID_HANDLE_VALUE == dirp->handle) { return false; @@ -169,6 +170,7 @@ bool read_directory_first(dir_information* dirp, char* entry_name, bool& is_dire } bool read_directory_next(dir_information* dirp, char* entry_name, bool& is_directory) { + if (!dirp) return false; int result = FindNextFile(dirp->handle, &dirp->search_data); if (result==0) return false; @@ -181,7 +183,7 @@ bool read_directory_next(dir_information* dirp, char* entry_name, bool& is_direc } void close_directory(dir_information* dirp) { - if (dirp->handle != INVALID_HANDLE_VALUE) { + if (dirp && dirp->handle != INVALID_HANDLE_VALUE) { FindClose(dirp->handle); dirp->handle = INVALID_HANDLE_VALUE; } @@ -197,10 +199,12 @@ dir_information* open_directory(const char* dirname) { } bool read_directory_first(dir_information* dirp, char* entry_name, bool& is_directory) { + if (!dirp) return false; return read_directory_next(dirp,entry_name,is_directory); } bool read_directory_next(dir_information* dirp, char* entry_name, bool& is_directory) { + if (!dirp) return false; struct dirent* dentry = readdir(dirp->dir); if (dentry==NULL) { return false; @@ -236,7 +240,7 @@ bool read_directory_next(dir_information* dirp, char* entry_name, bool& is_direc } void close_directory(dir_information* dirp) { - closedir(dirp->dir); + if (dirp) closedir(dirp->dir); } #endif