mirror of
https://github.com/halpz/re3.git
synced 2025-07-22 18:39:45 +00:00
Fix casepath chaos
This commit is contained in:
@ -376,23 +376,19 @@ RwStream *RwStreamOpen(RwStreamType type, RwStreamAccessType accessType, const v
|
||||
file = rwNewT(StreamFile, 1, 0);
|
||||
memcpy(file, &fakefile, sizeof(StreamFile));
|
||||
#ifndef _WIN32
|
||||
// Be case-insensitive and fix backslashes (from https://github.com/OneSadCookie/fcaseopen/)
|
||||
FILE* first = fopen((char*)pData, "r");
|
||||
char *r;
|
||||
if (!first) {
|
||||
r = (char*)alloca(strlen((char*)pData) + 2);
|
||||
// Use default path(and pass error handling to librw) if we can't find any match
|
||||
if (!casepath((char*)pData, r))
|
||||
r = (char*)pData;
|
||||
char *r = casepath((char*)pData);
|
||||
if (r) {
|
||||
if (file->open((char*)r, mode)) {
|
||||
free(r);
|
||||
return file;
|
||||
}
|
||||
free(r);
|
||||
} else
|
||||
fclose(first);
|
||||
|
||||
if(file->open((char*)r, mode))
|
||||
return file;
|
||||
#else
|
||||
if(file->open((char*)pData, mode))
|
||||
return file;
|
||||
#endif
|
||||
{
|
||||
if (file->open((char*)pData, mode))
|
||||
return file;
|
||||
}
|
||||
rwFree(file);
|
||||
return nil;
|
||||
}
|
||||
@ -856,12 +852,41 @@ RpSkin *RpSkinGeometryGetSkin( RpGeometry *geometry ) { return Skin::get(geometr
|
||||
RpAtomic *RpSkinAtomicSetHAnimHierarchy( RpAtomic *atomic, RpHAnimHierarchy *hierarchy ) { Skin::setHierarchy(atomic, hierarchy); return atomic; }
|
||||
RpHAnimHierarchy *RpSkinAtomicGetHAnimHierarchy( const RpAtomic *atomic ) { return Skin::getHierarchy(atomic); }
|
||||
|
||||
RwImage *
|
||||
RtBMPImageWrite(RwImage *image, const RwChar *imageName)
|
||||
{
|
||||
#ifndef _WIN32
|
||||
char *r = casepath(imageName);
|
||||
if (r) {
|
||||
rw::writeBMP(image, r);
|
||||
free(r);
|
||||
} else {
|
||||
rw::writeBMP(image, imageName);
|
||||
}
|
||||
|
||||
#else
|
||||
rw::writeBMP(image, imageName);
|
||||
#endif
|
||||
return image;
|
||||
}
|
||||
RwImage *
|
||||
RtBMPImageRead(const RwChar *imageName)
|
||||
{
|
||||
#ifndef _WIN32
|
||||
RwImage *image;
|
||||
char *r = casepath(imageName);
|
||||
if (r) {
|
||||
image = rw::readBMP(r);
|
||||
free(r);
|
||||
} else {
|
||||
image = rw::readBMP(imageName);
|
||||
}
|
||||
return image;
|
||||
|
||||
|
||||
|
||||
|
||||
RwImage *RtBMPImageWrite(RwImage * image, const RwChar * imageName) { rw::writeBMP(image, imageName); return image; }
|
||||
RwImage *RtBMPImageRead(const RwChar * imageName) { return rw::readBMP(imageName); }
|
||||
#else
|
||||
return rw::readBMP(imageName);
|
||||
#endif
|
||||
}
|
||||
|
||||
#include "rtquat.h"
|
||||
|
||||
|
Reference in New Issue
Block a user