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 "";
|
||||
}
|
||||
|
||||
/* _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)
|
||||
{
|
||||
static char filename[PATH_MAX + 1];
|
||||
|
|
|
@ -2192,66 +2192,3 @@ void S9xAutoSaveSRAM()
|
|||
{
|
||||
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__
|
||||
|
|
|
@ -446,55 +446,4 @@ const char * S9xGetDirectory (enum s9x_getdirtype dirtype)
|
|||
path[index][l - 1] = 0;
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
#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();
|
||||
#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)
|
||||
{
|
||||
long n = 0;
|
||||
|
|
Loading…
Reference in New Issue