Filesystem: Actually throw ENOENT for missing files

This commit is contained in:
Mook 2015-10-30 20:25:49 -07:00
parent 7bf6eca362
commit c05ebd7ea8
1 changed files with 14 additions and 1 deletions

View File

@ -650,7 +650,20 @@ void FileSystem::openReadRaw(SDL_RWops &ops,
bool freeOnClose) bool freeOnClose)
{ {
PHYSFS_File *handle = PHYSFS_openRead(filename); PHYSFS_File *handle = PHYSFS_openRead(filename);
assert(handle);
if (!handle)
{
PHYSFS_ErrorCode error = PHYSFS_getLastErrorCode();
switch (error)
{
case PHYSFS_ERR_NOT_FOUND:
case PHYSFS_ERR_NOT_A_FILE:
throw Exception(Exception::NoFileError, "%s", filename);
default:
throw Exception(Exception::PHYSFSError,
"PhysFS: %s", PHYSFS_getErrorByCode(error));
}
}
initReadOps(handle, ops, freeOnClose); initReadOps(handle, ops, freeOnClose);
} }