diff options
author | 2010-01-13 04:01:20 +0000 | |
---|---|---|
committer | 2010-01-13 04:01:20 +0000 | |
commit | b53bb2c6acce9ab44b48d18c76a9059261e97548 (patch) | |
tree | 33e03fd2fd5dd91dedac105de03e28fdc9cab3d3 /src/osd/sdl/main.c | |
parent | f8b28bd2f1f915b3c463dce87b6035d95aa2c9f5 (diff) |
SDLMAME initial import [R. Belmont, Couriersud]
Diffstat (limited to 'src/osd/sdl/main.c')
-rw-r--r-- | src/osd/sdl/main.c | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/src/osd/sdl/main.c b/src/osd/sdl/main.c new file mode 100644 index 00000000000..ca1a305dd4d --- /dev/null +++ b/src/osd/sdl/main.c @@ -0,0 +1,76 @@ +//============================================================ +// +// main.c - Win32 main program +// +// Copyright (c) 1996-2007, Nicola Salmoria and the MAME Team. +// Visit http://mamedev.org for licensing and usage restrictions. +// +// SDLMAME by Olivier Galibert and R. Belmont +// +//============================================================ + +// standard windows headers +#define _WIN32_WINNT 0x0400 +#define WIN32_LEAN_AND_MEAN +#include <windows.h> +#include <tchar.h> + +// MAMEOS headers +#include "strconv.h" + +extern int utf8_main(int argc, char *argv[]); + + + +//============================================================ +// main +//============================================================ + +// undo the command-line #define that maps main to utf8_main in all other cases +#ifndef WINUI +#undef main +#undef wmain +#endif + +//extern "C" int _tmain(int argc, TCHAR **argv) +int main(int argc, TCHAR **argv) +{ + int i, rc; + char **utf8_argv; + +#ifdef MALLOC_DEBUG +{ + extern int winalloc_in_main_code; + winalloc_in_main_code = TRUE; +#endif + + /* convert arguments to UTF-8 */ + utf8_argv = (char **) malloc(argc * sizeof(*argv)); + if (utf8_argv == NULL) + return 999; + for (i = 0; i < argc; i++) + { + utf8_argv[i] = utf8_from_tstring(argv[i]); + if (utf8_argv[i] == NULL) + return 999; + } + + /* run utf8_main */ + rc = utf8_main(argc, utf8_argv); + + /* free arguments */ + for (i = 0; i < argc; i++) + free(utf8_argv[i]); + free(utf8_argv); + +#ifdef MALLOC_DEBUG + { + void check_unfreed_mem(void); + check_unfreed_mem(); + } + winalloc_in_main_code = FALSE; +} +#endif + + return rc; +} |