summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd
diff options
context:
space:
mode:
author Couriersud <couriersud@users.noreply.github.com>2010-02-14 13:45:01 +0000
committer Couriersud <couriersud@users.noreply.github.com>2010-02-14 13:45:01 +0000
commitde2aa6fdf02feb9105e3e2c619b6a5f47f64eeef (patch)
tree43d0097c44caf5c77b57d630a445e89d598c8b8d /src/osd
parent61e28b93b7e907c9decc7ab00b082840356b331c (diff)
- sdldir.c: Cleanup the #ifdef hell a bit.
- sdlfile.c: Cosmetic cleanups; what's the point in having #ifdef'd code for pwrite and lseek/fwrite, will get rid of that later.
Diffstat (limited to 'src/osd')
-rw-r--r--src/osd/sdl/sdldir.c50
-rw-r--r--src/osd/sdl/sdlfile.c42
2 files changed, 44 insertions, 48 deletions
diff --git a/src/osd/sdl/sdldir.c b/src/osd/sdl/sdldir.c
index 794d3b35fec..fa2e8bb1b53 100644
--- a/src/osd/sdl/sdldir.c
+++ b/src/osd/sdl/sdldir.c
@@ -43,14 +43,24 @@
#define INVPATHSEPCH '\\'
#endif
-struct _osd_directory
-{
- osd_directory_entry ent;
#if defined(SDLMAME_DARWIN) || defined(SDLMAME_WIN32) || defined(SDLMAME_NO64BITIO) || defined(SDLMAME_BSD) || defined(SDLMAME_OS2)
- struct dirent *data;
+typedef struct dirent sdl_dirent;
+typedef struct stat sdl_stat;
+#define sdl_readdir readdir
+#define sdl_stat_fn stat
#else
- struct dirent64 *data;
+typedef struct dirent64 sdl_dirent;
+typedef struct stat64 sdl_stat;
+#define sdl_readdir readdir64
+#define sdl_stat_fn stat64
#endif
+
+#define HAS_DT_XXX defined(SDLMAME_LINUX) || defined(SDLMAME_BSD) || defined(SDLMAME_DARWIN)
+
+struct _osd_directory
+{
+ osd_directory_entry ent;
+ sdl_dirent *data;
DIR *fd;
char *path;
};
@@ -68,7 +78,7 @@ static char *build_full_path(const char *path, const char *file)
}
-#if defined (SDLMAME_LINUX) || defined (SDLMAME_BSD) || defined(SDLMAME_DARWIN)
+#if HAS_DT_XXX
static osd_dir_entry_type get_attributes_enttype(int attributes)
{
if (attributes == DT_DIR)
@@ -80,15 +90,9 @@ static osd_dir_entry_type get_attributes_enttype(int attributes)
static osd_dir_entry_type get_attributes_stat(const char *file)
{
-#if defined(SDLMAME_WIN32) || defined(SDLMAME_NO64BITIO) || defined(SDLMAME_OS2)
- struct stat st;
- if(stat(file, &st))
+ sdl_stat st;
+ if(sdl_stat_fn(file, &st))
return (osd_dir_entry_type) 0;
-#else
- struct stat64 st;
- if(stat64(file, &st))
- return ENTTYPE_NONE;
-#endif
if (S_ISDIR(st.st_mode))
return ENTTYPE_DIR;
@@ -99,15 +103,9 @@ static osd_dir_entry_type get_attributes_stat(const char *file)
static UINT64 osd_get_file_size(const char *file)
{
-#if defined(SDLMAME_DARWIN) || defined(SDLMAME_WIN32) || defined(SDLMAME_NO64BITIO) || defined(SDLMAME_BSD) || defined(SDLMAME_OS2)
- struct stat st;
- if(stat(file, &st))
- return 0;
-#else
- struct stat64 st;
- if(stat64(file, &st))
+ sdl_stat st;
+ if(sdl_stat_fn(file, &st))
return 0;
-#endif
return st.st_size;
}
@@ -186,18 +184,14 @@ osd_directory *osd_opendir(const char *dirname)
const osd_directory_entry *osd_readdir(osd_directory *dir)
{
char *temp;
- #if defined(SDLMAME_DARWIN) || defined(SDLMAME_WIN32) || defined(SDLMAME_NO64BITIO) || defined(SDLMAME_BSD) || defined(SDLMAME_OS2)
- dir->data = readdir(dir->fd);
- #else
- dir->data = readdir64(dir->fd);
- #endif
+ dir->data = sdl_readdir(dir->fd);
if (dir->data == NULL)
return NULL;
dir->ent.name = dir->data->d_name;
temp = build_full_path(dir->path, dir->data->d_name);
- #if defined (SDLMAME_LINUX) || defined (SDLMAME_BSD) || defined(SDLMAME_DARWIN)
+ #if HAS_DT_XXX
dir->ent.type = get_attributes_enttype(dir->data->d_type);
#else
dir->ent.type = get_attributes_stat(temp);
diff --git a/src/osd/sdl/sdlfile.c b/src/osd/sdl/sdlfile.c
index 8c95280a557..badbff35e93 100644
--- a/src/osd/sdl/sdlfile.c
+++ b/src/osd/sdl/sdlfile.c
@@ -55,7 +55,7 @@
struct _osd_file
{
int handle;
- char filename[1];
+ char filename[1];
};
@@ -108,7 +108,7 @@ file_error osd_open(const char *path, UINT32 openflags, osd_file **file, UINT64
UINT32 access;
const char *src;
char *dst;
- #if defined(SDLMAME_DARWIN) || defined(SDLMAME_WIN32) || defined(SDLMAME_NO64BITIO) || defined(SDLMAME_BSD) || defined(SDLMAME_OS2)
+ #if defined(SDLMAME_DARWIN) || defined(SDLMAME_WIN32) || defined(SDLMAME_NO64BITIO) || defined(SDLMAME_BSD) || defined(SDLMAME_OS2)
struct stat st;
#else
struct stat64 st;
@@ -192,7 +192,7 @@ file_error osd_open(const char *path, UINT32 openflags, osd_file **file, UINT64
#endif
// attempt to open the file
- #if defined(SDLMAME_DARWIN) || defined(SDLMAME_WIN32) || defined(SDLMAME_NO64BITIO) || defined(SDLMAME_BSD) || defined(SDLMAME_OS2)
+ #if defined(SDLMAME_DARWIN) || defined(SDLMAME_WIN32) || defined(SDLMAME_NO64BITIO) || defined(SDLMAME_BSD) || defined(SDLMAME_OS2)
(*file)->handle = open(tmpstr, access, 0666);
#else
(*file)->handle = open64(tmpstr, access, 0666);
@@ -215,7 +215,7 @@ file_error osd_open(const char *path, UINT32 openflags, osd_file **file, UINT64
// attempt to reopen the file
if (error == NO_ERROR)
{
- #if defined(SDLMAME_DARWIN) || defined(SDLMAME_WIN32) || defined(SDLMAME_NO64BITIO) || defined(SDLMAME_BSD) || defined(SDLMAME_OS2)
+ #if defined(SDLMAME_DARWIN) || defined(SDLMAME_WIN32) || defined(SDLMAME_NO64BITIO) || defined(SDLMAME_BSD) || defined(SDLMAME_OS2)
(*file)->handle = open(tmpstr, access, 0666);
#else
(*file)->handle = open64(tmpstr, access, 0666);
@@ -235,7 +235,7 @@ file_error osd_open(const char *path, UINT32 openflags, osd_file **file, UINT64
}
// get the file size
- #if defined(SDLMAME_DARWIN) || defined(SDLMAME_WIN32) || defined(SDLMAME_NO64BITIO) || defined(SDLMAME_BSD) || defined(SDLMAME_OS2)
+ #if defined(SDLMAME_DARWIN) || defined(SDLMAME_WIN32) || defined(SDLMAME_NO64BITIO) || defined(SDLMAME_BSD) || defined(SDLMAME_OS2)
fstat((*file)->handle, &st);
#else
fstat64((*file)->handle, &st);
@@ -383,34 +383,36 @@ int osd_get_physical_drive_geometry(const char *filename, UINT32 *cylinders, UIN
return FALSE; // no, no way, huh-uh, forget it
}
-/*============================================================ */
-/* osd_is_path_separator */
-/*============================================================ */
+//============================================================
+// osd_is_path_separator
+//============================================================
static int osd_is_path_separator(char c)
{
- return (c == '/') || (c == '\\');
+ return (c == '/') || (c == '\\');
}
-/*============================================================ */
-/* osd_is_absolute_path */
-/*============================================================ */
+//============================================================
+// osd_is_absolute_path
+//============================================================
+
int osd_is_absolute_path(const char *path)
{
- int result;
+ int result;
- if (osd_is_path_separator(path[0]))
- result = TRUE;
+ if (osd_is_path_separator(path[0]))
+ result = TRUE;
#if !defined(SDLMAME_WIN32) && !defined(SDLMAME_OS2)
- else if (path[0] == '.')
- result = TRUE;
+ else if (path[0] == '.')
+ result = TRUE;
#else
#ifndef UNDER_CE
else if (*path && path[1] == ':')
result = TRUE;
#endif
#endif
- else
- result = FALSE;
- return result;
+ else
+ result = FALSE;
+
+ return result;
}