summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/windows/winutil.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/osd/windows/winutil.cpp')
-rw-r--r--src/osd/windows/winutil.cpp50
1 files changed, 6 insertions, 44 deletions
diff --git a/src/osd/windows/winutil.cpp b/src/osd/windows/winutil.cpp
index eb63eecacd0..607699749bb 100644
--- a/src/osd/windows/winutil.cpp
+++ b/src/osd/windows/winutil.cpp
@@ -18,47 +18,6 @@
#include "winutil.h"
#include "strconv.h"
-//============================================================
-// win_error_to_file_error
-//============================================================
-
-file_error win_error_to_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_FILENAME_EXCED_RANGE:
- 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;
-}
-
-
//============================================================
// win_attributes_to_entry_type
@@ -130,13 +89,16 @@ BOOL win_is_gui_application(void)
//============================================================
// osd_subst_env
//============================================================
-void osd_subst_env(char **dst, const char *src)
+void osd_subst_env(std::string &dst, const std::string &src)
{
TCHAR buffer[MAX_PATH];
- TCHAR *t_src = tstring_from_utf8(src);
+ TCHAR *t_src = tstring_from_utf8(src.c_str());
ExpandEnvironmentStrings(t_src, buffer, ARRAY_LENGTH(buffer));
- *dst = utf8_from_tstring(buffer);
+ osd_free(t_src);
+ char *cnv = utf8_from_tstring(buffer);
+ dst = cnv;
+ osd_free(cnv);
}
//-------------------------------------------------