mirror of https://github.com/snes9xgit/snes9x.git
Move _splitpath and _makepath into core.
This commit is contained in:
parent
e322bbf109
commit
063b3a959c
|
@ -34,75 +34,6 @@ const char *S9xChooseFilename(bool8 read_only)
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
/* _splitpath/_makepath: Modified from unix.cpp. See file for credits. */
|
|
||||||
#ifndef SLASH_CHAR
|
|
||||||
#define SLASH_CHAR '/'
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void _splitpath(const char *path, char *drive, char *dir, char *fname, char *ext)
|
|
||||||
{
|
|
||||||
char *slash = strrchr((char *)path, SLASH_CHAR);
|
|
||||||
char *dot = strrchr((char *)path, '.');
|
|
||||||
|
|
||||||
*drive = '\0';
|
|
||||||
|
|
||||||
if (dot && slash && dot < slash)
|
|
||||||
{
|
|
||||||
dot = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!slash)
|
|
||||||
{
|
|
||||||
*dir = '\0';
|
|
||||||
strcpy(fname, path);
|
|
||||||
|
|
||||||
if (dot)
|
|
||||||
{
|
|
||||||
fname[dot - path] = '\0';
|
|
||||||
strcpy(ext, dot + 1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
*ext = '\0';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
strcpy(dir, path);
|
|
||||||
dir[slash - path] = '\0';
|
|
||||||
strcpy(fname, slash + 1);
|
|
||||||
|
|
||||||
if (dot)
|
|
||||||
{
|
|
||||||
fname[(dot - slash) - 1] = '\0';
|
|
||||||
strcpy(ext, dot + 1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
*ext = '\0';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void _makepath(char *path, const char *drive, const char *dir, const char *fname, const char *ext)
|
|
||||||
{
|
|
||||||
if (dir && *dir)
|
|
||||||
{
|
|
||||||
strcpy(path, dir);
|
|
||||||
strcat(path, "/");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
*path = '\0';
|
|
||||||
|
|
||||||
strcat(path, fname);
|
|
||||||
|
|
||||||
if (ext && *ext)
|
|
||||||
{
|
|
||||||
strcat(path, ".");
|
|
||||||
strcat(path, ext);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *S9xGetFilenameInc(const char *e, enum s9x_getdirtype dirtype)
|
const char *S9xGetFilenameInc(const char *e, enum s9x_getdirtype dirtype)
|
||||||
{
|
{
|
||||||
static char filename[PATH_MAX + 1];
|
static char filename[PATH_MAX + 1];
|
||||||
|
|
|
@ -2192,66 +2192,3 @@ void S9xAutoSaveSRAM()
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef __WIN32__
|
|
||||||
// S9x weirdness.
|
|
||||||
void _splitpath (const char *path, char *drive, char *dir, char *fname, char *ext)
|
|
||||||
{
|
|
||||||
*drive = 0;
|
|
||||||
|
|
||||||
const char *slash = strrchr(path, SLASH_CHAR),
|
|
||||||
*dot = strrchr(path, '.');
|
|
||||||
|
|
||||||
if (dot && slash && dot < slash)
|
|
||||||
dot = NULL;
|
|
||||||
|
|
||||||
if (!slash)
|
|
||||||
{
|
|
||||||
*dir = 0;
|
|
||||||
|
|
||||||
strcpy(fname, path);
|
|
||||||
|
|
||||||
if (dot)
|
|
||||||
{
|
|
||||||
fname[dot - path] = 0;
|
|
||||||
strcpy(ext, dot + 1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
*ext = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
strcpy(dir, path);
|
|
||||||
dir[slash - path] = 0;
|
|
||||||
|
|
||||||
strcpy(fname, slash + 1);
|
|
||||||
|
|
||||||
if (dot)
|
|
||||||
{
|
|
||||||
fname[dot - slash - 1] = 0;
|
|
||||||
strcpy(ext, dot + 1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
*ext = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void _makepath (char *path, const char *, const char *dir, const char *fname, const char *ext)
|
|
||||||
{
|
|
||||||
if (dir && *dir)
|
|
||||||
{
|
|
||||||
strcpy(path, dir);
|
|
||||||
strcat(path, SLASH_STR);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
*path = 0;
|
|
||||||
|
|
||||||
strcat(path, fname);
|
|
||||||
|
|
||||||
if (ext && *ext)
|
|
||||||
{
|
|
||||||
strcat(path, ".");
|
|
||||||
strcat(path, ext);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif // __WIN32__
|
|
||||||
|
|
|
@ -447,54 +447,3 @@ const char * S9xGetDirectory (enum s9x_getdirtype dirtype)
|
||||||
|
|
||||||
return (path[index]);
|
return (path[index]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _splitpath (const char *path, char *drive, char *dir, char *fname, char *ext)
|
|
||||||
{
|
|
||||||
drive[0] = 0;
|
|
||||||
fname[0] = 0;
|
|
||||||
ext[0] = 0;
|
|
||||||
dir[0] = 0;
|
|
||||||
|
|
||||||
size_t x;
|
|
||||||
|
|
||||||
x = strlen(path) - 1;
|
|
||||||
if (x < 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
while (x && (path[x] != MAC_PATH_SEP_CHAR))
|
|
||||||
x--;
|
|
||||||
|
|
||||||
if (x)
|
|
||||||
{
|
|
||||||
strcpy(dir, path);
|
|
||||||
dir[x + 1] = 0;
|
|
||||||
|
|
||||||
strcpy(fname, path + x + 1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
strcpy(fname, path);
|
|
||||||
|
|
||||||
x = strlen(fname);
|
|
||||||
while (x && (fname[x] != '.'))
|
|
||||||
x--;
|
|
||||||
|
|
||||||
if (x)
|
|
||||||
{
|
|
||||||
strcpy(ext, fname + x);
|
|
||||||
fname[x] = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void _makepath (char *path, const char *drive, const char *dir, const char *fname, const char *ext)
|
|
||||||
{
|
|
||||||
static const char emp[] = "", dot[] = ".";
|
|
||||||
|
|
||||||
const char *d, *f, *e, *p;
|
|
||||||
|
|
||||||
d = dir ? dir : emp;
|
|
||||||
f = fname ? fname : emp;
|
|
||||||
e = ext ? ext : emp;
|
|
||||||
p = (e[0] && e[0] != '.') ? dot : emp;
|
|
||||||
|
|
||||||
snprintf(path, PATH_MAX + 1, "%s%s%s%s", d, f, p, e);
|
|
||||||
}
|
|
||||||
|
|
66
snes9x.cpp
66
snes9x.cpp
|
@ -765,3 +765,69 @@ char * S9xParseArgs (char **argv, int argc)
|
||||||
|
|
||||||
return (rom_filename);
|
return (rom_filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __WIN32__
|
||||||
|
void _splitpath(const char *path, char *drive, char *dir, char *fname, char *ext)
|
||||||
|
{
|
||||||
|
char *slash = strrchr((char *)path, SLASH_CHAR);
|
||||||
|
char *dot = strrchr((char *)path, '.');
|
||||||
|
|
||||||
|
*drive = '\0';
|
||||||
|
|
||||||
|
if (dot && slash && dot < slash)
|
||||||
|
{
|
||||||
|
dot = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!slash)
|
||||||
|
{
|
||||||
|
*dir = '\0';
|
||||||
|
strcpy(fname, path);
|
||||||
|
|
||||||
|
if (dot)
|
||||||
|
{
|
||||||
|
fname[dot - path] = '\0';
|
||||||
|
strcpy(ext, dot + 1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
*ext = '\0';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
strcpy(dir, path);
|
||||||
|
dir[slash - path] = '\0';
|
||||||
|
strcpy(fname, slash + 1);
|
||||||
|
|
||||||
|
if (dot)
|
||||||
|
{
|
||||||
|
fname[(dot - slash) - 1] = '\0';
|
||||||
|
strcpy(ext, dot + 1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
*ext = '\0';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void _makepath(char *path, const char *drive, const char *dir, const char *fname, const char *ext)
|
||||||
|
{
|
||||||
|
if (dir && *dir)
|
||||||
|
{
|
||||||
|
strcpy(path, dir);
|
||||||
|
strcat(path, "/");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
*path = '\0';
|
||||||
|
|
||||||
|
strcat(path, fname);
|
||||||
|
|
||||||
|
if (ext && *ext)
|
||||||
|
{
|
||||||
|
strcat(path, ".");
|
||||||
|
strcat(path, ext);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif // __WIN32__
|
|
@ -170,67 +170,6 @@ static bool8 ReadJoysticks (void);
|
||||||
void S9xLatchJSEvent();
|
void S9xLatchJSEvent();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
void _splitpath (const char *path, char *drive, char *dir, char *fname, char *ext)
|
|
||||||
{
|
|
||||||
*drive = 0;
|
|
||||||
|
|
||||||
const char *slash = strrchr(path, SLASH_CHAR),
|
|
||||||
*dot = strrchr(path, '.');
|
|
||||||
|
|
||||||
if (dot && slash && dot < slash)
|
|
||||||
dot = NULL;
|
|
||||||
|
|
||||||
if (!slash)
|
|
||||||
{
|
|
||||||
*dir = 0;
|
|
||||||
|
|
||||||
strcpy(fname, path);
|
|
||||||
|
|
||||||
if (dot)
|
|
||||||
{
|
|
||||||
fname[dot - path] = 0;
|
|
||||||
strcpy(ext, dot + 1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
*ext = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
strcpy(dir, path);
|
|
||||||
dir[slash - path] = 0;
|
|
||||||
|
|
||||||
strcpy(fname, slash + 1);
|
|
||||||
|
|
||||||
if (dot)
|
|
||||||
{
|
|
||||||
fname[dot - slash - 1] = 0;
|
|
||||||
strcpy(ext, dot + 1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
*ext = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void _makepath (char *path, const char *, const char *dir, const char *fname, const char *ext)
|
|
||||||
{
|
|
||||||
if (dir && *dir)
|
|
||||||
{
|
|
||||||
strcpy(path, dir);
|
|
||||||
strcat(path, SLASH_STR);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
*path = 0;
|
|
||||||
|
|
||||||
strcat(path, fname);
|
|
||||||
|
|
||||||
if (ext && *ext)
|
|
||||||
{
|
|
||||||
strcat(path, ".");
|
|
||||||
strcat(path, ext);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static long log2 (long num)
|
static long log2 (long num)
|
||||||
{
|
{
|
||||||
long n = 0;
|
long n = 0;
|
||||||
|
|
Loading…
Reference in New Issue