summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author couriersud <couriersud@arcor.de>2015-01-10 01:53:20 +0100
committer couriersud <couriersud@arcor.de>2015-01-10 01:53:20 +0100
commit363b6dd26cc2a20b74290356fd98badc087a7564 (patch)
tree1f100a43ba843a32166009446d6ca5d09e37bd18
parentd1f0fd9fe8a52b320f71dbd89544f72e9076f541 (diff)
Aligned sdlfile.c to winfile.c (which is actually included by sdl).
Consequently removed quite some dead code spread across different files.
-rw-r--r--src/osd/sdl/sdldir.c1
-rw-r--r--src/osd/sdl/sdlfile.c78
-rw-r--r--src/osd/sdl/sdlos_macosx.c76
-rw-r--r--src/osd/sdl/sdlos_unix.c74
-rw-r--r--src/osd/sdl/sdlos_win32.c150
5 files changed, 79 insertions, 300 deletions
diff --git a/src/osd/sdl/sdldir.c b/src/osd/sdl/sdldir.c
index 93bd6026983..dab4d45a2cb 100644
--- a/src/osd/sdl/sdldir.c
+++ b/src/osd/sdl/sdldir.c
@@ -235,4 +235,5 @@ void osd_closedir(osd_directory *dir)
osd_free(dir);
}
+
#endif
diff --git a/src/osd/sdl/sdlfile.c b/src/osd/sdl/sdlfile.c
index cc3a504a79b..aab9828b3b5 100644
--- a/src/osd/sdl/sdlfile.c
+++ b/src/osd/sdl/sdlfile.c
@@ -499,4 +499,82 @@ int osd_is_absolute_path(const char *path)
return result;
}
+
+//============================================================
+// osd_stat
+//============================================================
+
+osd_directory_entry *osd_stat(const char *path)
+{
+ int err;
+ osd_directory_entry *result = NULL;
+ #if defined(SDLMAME_NO64BITIO) || defined(SDLMAME_BSD) || defined(SDLMAME_DARWIN)
+ struct stat st;
+ #else
+ struct stat64 st;
+ #endif
+
+ #if defined(SDLMAME_NO64BITIO) || defined(SDLMAME_BSD) || defined(SDLMAME_DARWIN)
+ err = stat(path, &st);
+ #else
+ err = stat64(path, &st);
+ #endif
+
+ if( err == -1) return NULL;
+
+ // create an osd_directory_entry; be sure to make sure that the caller can
+ // free all resources by just freeing the resulting osd_directory_entry
+ result = (osd_directory_entry *) osd_malloc_array(sizeof(*result) + strlen(path) + 1);
+ strcpy(((char *) result) + sizeof(*result), path);
+ result->name = ((char *) result) + sizeof(*result);
+ result->type = S_ISDIR(st.st_mode) ? ENTTYPE_DIR : ENTTYPE_FILE;
+ result->size = (UINT64)st.st_size;
+
+ return result;
+}
+
+//============================================================
+// osd_get_full_path
+//============================================================
+
+file_error osd_get_full_path(char **dst, const char *path)
+{
+ file_error err;
+ char path_buffer[512];
+
+ err = FILERR_NONE;
+
+ if (getcwd(path_buffer, 511) == NULL)
+ {
+ printf("osd_get_full_path: failed!\n");
+ err = FILERR_FAILURE;
+ }
+ else
+ {
+ *dst = (char *)osd_malloc_array(strlen(path_buffer)+strlen(path)+3);
+
+ // if it's already a full path, just pass it through
+ if (path[0] == '/')
+ {
+ strcpy(*dst, path);
+ }
+ else
+ {
+ sprintf(*dst, "%s%s%s", path_buffer, PATH_SEPARATOR, path);
+ }
+ }
+
+ return err;
+}
+
+//============================================================
+// osd_get_volume_name
+//============================================================
+
+const char *osd_get_volume_name(int idx)
+{
+ if (idx!=0) return NULL;
+ return "/";
+}
+
#endif
diff --git a/src/osd/sdl/sdlos_macosx.c b/src/osd/sdl/sdlos_macosx.c
index a6baef5f159..2c0f582c885 100644
--- a/src/osd/sdl/sdlos_macosx.c
+++ b/src/osd/sdl/sdlos_macosx.c
@@ -122,79 +122,3 @@ char *osd_get_clipboard_text(void)
return result;
}
-//============================================================
-// osd_stat
-//============================================================
-
-osd_directory_entry *osd_stat(const char *path)
-{
- int err;
- osd_directory_entry *result = NULL;
- #if defined(SDLMAME_DARWIN) || defined(SDLMAME_NO64BITIO)
- struct stat st;
- #else
- struct stat64 st;
- #endif
-
- #if defined(SDLMAME_DARWIN) || defined(SDLMAME_NO64BITIO)
- err = stat(path, &st);
- #else
- err = stat64(path, &st);
- #endif
-
- if( err == -1) return NULL;
-
- // create an osd_directory_entry; be sure to make sure that the caller can
- // free all resources by just freeing the resulting osd_directory_entry
- result = (osd_directory_entry *) osd_malloc_array(sizeof(*result) + strlen(path) + 1);
- strcpy(((char *) result) + sizeof(*result), path);
- result->name = ((char *) result) + sizeof(*result);
- result->type = S_ISDIR(st.st_mode) ? ENTTYPE_DIR : ENTTYPE_FILE;
- result->size = (UINT64)st.st_size;
-
- return result;
-}
-
-//============================================================
-// osd_get_volume_name
-//============================================================
-
-const char *osd_get_volume_name(int idx)
-{
- if (idx!=0) return NULL;
- return "/";
-}
-
-//============================================================
-// osd_get_full_path
-//============================================================
-
-file_error osd_get_full_path(char **dst, const char *path)
-{
- file_error err;
- char path_buffer[512];
-
- err = FILERR_NONE;
-
- if (getcwd(path_buffer, 511) == NULL)
- {
- printf("osd_get_full_path: failed!\n");
- err = FILERR_FAILURE;
- }
- else
- {
- *dst = (char *)osd_malloc_array(strlen(path_buffer)+strlen(path)+3);
-
- // if it's already a full path, just pass it through
- if (path[0] == '/')
- {
- strcpy(*dst, path);
- }
- else
- {
- sprintf(*dst, "%s%s%s", path_buffer, PATH_SEPARATOR, path);
- }
- }
-
- return err;
-}
diff --git a/src/osd/sdl/sdlos_unix.c b/src/osd/sdl/sdlos_unix.c
index 512a074bdba..cee3f498724 100644
--- a/src/osd/sdl/sdlos_unix.c
+++ b/src/osd/sdl/sdlos_unix.c
@@ -148,79 +148,5 @@ char *osd_get_clipboard_text(void)
}
#endif
-//============================================================
-// osd_stat
-//============================================================
-
-osd_directory_entry *osd_stat(const char *path)
-{
- int err;
- osd_directory_entry *result = NULL;
- #if defined(SDLMAME_NO64BITIO) || defined(SDLMAME_BSD)
- struct stat st;
- #else
- struct stat64 st;
- #endif
-
- #if defined(SDLMAME_NO64BITIO) || defined(SDLMAME_BSD)
- err = stat(path, &st);
- #else
- err = stat64(path, &st);
- #endif
-
- if( err == -1) return NULL;
-
- // create an osd_directory_entry; be sure to make sure that the caller can
- // free all resources by just freeing the resulting osd_directory_entry
- result = (osd_directory_entry *) osd_malloc_array(sizeof(*result) + strlen(path) + 1);
- strcpy(((char *) result) + sizeof(*result), path);
- result->name = ((char *) result) + sizeof(*result);
- result->type = S_ISDIR(st.st_mode) ? ENTTYPE_DIR : ENTTYPE_FILE;
- result->size = (UINT64)st.st_size;
-
- return result;
-}
-
-//============================================================
-// osd_get_volume_name
-//============================================================
-
-const char *osd_get_volume_name(int idx)
-{
- if (idx!=0) return NULL;
- return "/";
-}
-
-//============================================================
-// osd_get_full_path
-//============================================================
-
-file_error osd_get_full_path(char **dst, const char *path)
-{
- file_error err;
- char path_buffer[512];
-
- err = FILERR_NONE;
- if (getcwd(path_buffer, 511) == NULL)
- {
- printf("osd_get_full_path: failed!\n");
- err = FILERR_FAILURE;
- }
- else
- {
- *dst = (char *)osd_malloc_array(strlen(path_buffer)+strlen(path)+3);
- // if it's already a full path, just pass it through
- if (path[0] == '/')
- {
- strcpy(*dst, path);
- }
- else
- {
- sprintf(*dst, "%s%s%s", path_buffer, PATH_SEPARATOR, path);
- }
- }
-
- return err;
-}
diff --git a/src/osd/sdl/sdlos_win32.c b/src/osd/sdl/sdlos_win32.c
index 152156a8edb..981e3a23b0e 100644
--- a/src/osd/sdl/sdlos_win32.c
+++ b/src/osd/sdl/sdlos_win32.c
@@ -144,153 +144,3 @@ WCHAR *wstring_from_utf8(const char *utf8string)
return result;
}
-//============================================================
-// win_attributes_to_entry_type
-//============================================================
-
-static osd_dir_entry_type win_attributes_to_entry_type(DWORD attributes)
-{
- if (attributes == 0xFFFFFFFF)
- return ENTTYPE_NONE;
- else if (attributes & FILE_ATTRIBUTE_DIRECTORY)
- return ENTTYPE_DIR;
- else
- return ENTTYPE_FILE;
-}
-
-//============================================================
-// osd_stat
-//============================================================
-
-osd_directory_entry *osd_stat(const char *path)
-{
- osd_directory_entry *result = NULL;
- TCHAR *t_path;
- HANDLE find = INVALID_HANDLE_VALUE;
- WIN32_FIND_DATA find_data;
-
- // convert the path to TCHARs
- t_path = tstring_from_utf8(path);
- if (t_path == NULL)
- goto done;
-
- // attempt to find the first file
- find = FindFirstFile(t_path, &find_data);
- if (find == INVALID_HANDLE_VALUE)
- goto done;
-
- // create an osd_directory_entry; be sure to make sure that the caller can
- // free all resources by just freeing the resulting osd_directory_entry
- result = (osd_directory_entry *) osd_malloc_array(sizeof(*result) + strlen(path) + 1);
- if (!result)
- goto done;
- strcpy(((char *) result) + sizeof(*result), path);
- result->name = ((char *) result) + sizeof(*result);
- result->type = win_attributes_to_entry_type(find_data.dwFileAttributes);
- result->size = find_data.nFileSizeLow | ((UINT64) find_data.nFileSizeHigh << 32);
-
-done:
- if (t_path)
- osd_free(t_path);
- return result;
-}
-
-//============================================================
-// osd_get_volume_name
-//============================================================
-
-const char *osd_get_volume_name(int idx)
-{
- static char szBuffer[128];
- const char *p;
-
- GetLogicalDriveStringsA(ARRAY_LENGTH(szBuffer), szBuffer);
-
- p = szBuffer;
- while(idx--) {
- p += strlen(p) + 1;
- if (!*p) return NULL;
- }
-
- return p;
-}
-
-//============================================================
-// win_error_to_mame_file_error
-//============================================================
-
-static file_error win_error_to_mame_file_error(DWORD error)
-{
- file_error filerr;
-
- // convert a Windows error to a file_error
- switch (error)
- {
- case ERROR_SUCCESS:
- filerr = FILERR_NONE;
- break;
-
- case ERROR_OUTOFMEMORY:
- filerr = FILERR_OUT_OF_MEMORY;
- break;
-
- case ERROR_FILE_NOT_FOUND:
- case ERROR_PATH_NOT_FOUND:
- filerr = FILERR_NOT_FOUND;
- break;
-
- case ERROR_ACCESS_DENIED:
- filerr = FILERR_ACCESS_DENIED;
- break;
-
- case ERROR_SHARING_VIOLATION:
- filerr = FILERR_ALREADY_OPEN;
- break;
-
- default:
- filerr = FILERR_FAILURE;
- break;
- }
- return filerr;
-}
-
-//============================================================
-// osd_get_full_path
-//============================================================
-
-file_error osd_get_full_path(char **dst, const char *path)
-{
- file_error err;
- TCHAR *t_path;
- TCHAR buffer[MAX_PATH];
-
- // convert the path to TCHARs
- t_path = tstring_from_utf8(path);
- if (t_path == NULL)
- {
- err = FILERR_OUT_OF_MEMORY;
- goto done;
- }
-
- // cannonicalize the path
- if (!GetFullPathName(t_path, ARRAY_LENGTH(buffer), buffer, NULL))
- {
- err = win_error_to_mame_file_error(GetLastError());
- goto done;
- }
-
- // convert the result back to UTF-8
- *dst = utf8_from_tstring(buffer);
- if (!*dst)
- {
- err = FILERR_OUT_OF_MEMORY;
- goto done;
- }
-
- err = FILERR_NONE;
-
-done:
- if (t_path != NULL)
- osd_free(t_path);
- return err;
-}