(retro_file.c) Cleanup retro_fopen
This commit is contained in:
parent
5fdb1c8c43
commit
c4910985ed
|
@ -66,46 +66,62 @@ int retro_get_fd(RFILE *stream)
|
||||||
|
|
||||||
RFILE *retro_fopen(const char *path, unsigned mode, ssize_t len)
|
RFILE *retro_fopen(const char *path, unsigned mode, ssize_t len)
|
||||||
{
|
{
|
||||||
|
int flags = 0;
|
||||||
|
int mode_int = 0;
|
||||||
|
const char *mode_str = NULL;
|
||||||
RFILE *stream = (RFILE*)calloc(1, sizeof(*stream));
|
RFILE *stream = (RFILE*)calloc(1, sizeof(*stream));
|
||||||
|
|
||||||
if (!stream)
|
if (!stream)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
(void)mode_str;
|
||||||
|
(void)mode_int;
|
||||||
|
|
||||||
switch (mode)
|
switch (mode)
|
||||||
{
|
{
|
||||||
case RFILE_MODE_READ:
|
case RFILE_MODE_READ:
|
||||||
#if defined(VITA) || defined(PSP)
|
#if defined(VITA) || defined(PSP)
|
||||||
stream->fd = sceIoOpen(path, O_RDONLY, 0777);
|
mode_int = 0777;
|
||||||
|
flags = O_RDONLY;
|
||||||
#elif defined(HAVE_BUFFERED_IO)
|
#elif defined(HAVE_BUFFERED_IO)
|
||||||
stream->fd = fopen(path, "rb");
|
mode_str = "rb";
|
||||||
#else
|
#else
|
||||||
stream->fd = open(path, O_RDONLY);
|
flags = O_RDONLY;
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case RFILE_MODE_WRITE:
|
case RFILE_MODE_WRITE:
|
||||||
#if defined(VITA) || defined(PSP)
|
#if defined(VITA) || defined(PSP)
|
||||||
stream->fd = sceIoOpen(path, O_WRONLY | O_CREAT, 0777);
|
mode_int = 0777;
|
||||||
|
flags = O_WRONLY | O_CREAT;
|
||||||
#elif defined(HAVE_BUFFERED_IO)
|
#elif defined(HAVE_BUFFERED_IO)
|
||||||
stream->fd = fopen(path, "wb");
|
mode_str = "wb";
|
||||||
#else
|
#else
|
||||||
stream->fd = open(path, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR);
|
flags = O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR;
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case RFILE_MODE_READ_WRITE:
|
case RFILE_MODE_READ_WRITE:
|
||||||
#if defined(VITA) || defined(PSP)
|
#if defined(VITA) || defined(PSP)
|
||||||
stream->fd = sceIoOpen(path, O_RDWR, 0777);
|
mode_int = 0777;
|
||||||
|
flags = O_RDWR;
|
||||||
#elif defined(HAVE_BUFFERED_IO)
|
#elif defined(HAVE_BUFFERED_IO)
|
||||||
stream->fd = fopen(path, "w+");
|
mode_str = "w+";
|
||||||
#else
|
#else
|
||||||
|
flags = O_RDWR;
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
stream->fd = open(path, O_RDWR | O_BINARY);
|
flags |= O_BINARY;
|
||||||
#else
|
|
||||||
stream->fd = open(path, O_RDWR);
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(VITA) || defined(PSP)
|
||||||
|
stream->fd = sceIoOpen(path, flags, mode_int);
|
||||||
|
#elif defined(HAVE_BUFFERED_IO)
|
||||||
|
stream->fd = fopen(path, mode_str);
|
||||||
|
#else
|
||||||
|
stream->fd = open(path, flags);
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(HAVE_BUFFERED_IO)
|
#if defined(HAVE_BUFFERED_IO)
|
||||||
if (!stream->fd)
|
if (!stream->fd)
|
||||||
#else
|
#else
|
||||||
|
|
Loading…
Reference in New Issue