summaryrefslogtreecommitdiffstats
path: root/player
diff options
context:
space:
mode:
Diffstat (limited to 'player')
-rw-r--r--player/main-fn-unix.c (renamed from player/main_fn.c)0
-rw-r--r--player/main-fn-win.c20
-rw-r--r--player/main.c12
3 files changed, 24 insertions, 8 deletions
diff --git a/player/main_fn.c b/player/main-fn-unix.c
index 23a047b4dc..23a047b4dc 100644
--- a/player/main_fn.c
+++ b/player/main-fn-unix.c
diff --git a/player/main-fn-win.c b/player/main-fn-win.c
new file mode 100644
index 0000000000..125b4116f8
--- /dev/null
+++ b/player/main-fn-win.c
@@ -0,0 +1,20 @@
+#include "config.h"
+#include "core.h"
+#include "osdep/io.h"
+
+int wmain(int argc, wchar_t *argv[]);
+
+// mpv does its own wildcard expansion in the option parser
+int _dowildcard = 0;
+
+int wmain(int argc, wchar_t *argv[])
+{
+ char **argv_u8 = talloc_zero_array(NULL, char*, argc + 1);
+ for (int i = 0; i < argc; i++)
+ argv_u8[i] = mp_to_utf8(argv_u8, argv[i]);
+
+ int ret = mpv_main(argc, argv_u8);
+
+ talloc_free(argv_u8);
+ return ret;
+}
diff --git a/player/main.c b/player/main.c
index c517e871f6..55f5ff623b 100644
--- a/player/main.c
+++ b/player/main.c
@@ -275,19 +275,15 @@ static bool handle_help_options(struct MPContext *mpctx)
return opt_exit;
}
-static void osdep_preinit(int *p_argc, char ***p_argv)
+static void osdep_preinit(int argc, char **argv)
{
char *enable_talloc = getenv("MPV_LEAK_REPORT");
- if (*p_argc > 1 && (strcmp((*p_argv)[1], "-leak-report") == 0 ||
- strcmp((*p_argv)[1], "--leak-report") == 0))
+ if (argc > 1 && (strcmp(argv[1], "-leak-report") == 0 ||
+ strcmp(argv[1], "--leak-report") == 0))
enable_talloc = "1";
if (enable_talloc && strcmp(enable_talloc, "1") == 0)
talloc_enable_leak_report();
-#ifdef __MINGW32__
- mp_get_converted_argv(p_argc, p_argv);
-#endif
-
#ifdef _WIN32
// stop Windows from showing all kinds of annoying error dialogs
SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERRORBOX);
@@ -514,7 +510,7 @@ int mp_initialize(struct MPContext *mpctx, char **options)
int mpv_main(int argc, char *argv[])
{
- osdep_preinit(&argc, &argv);
+ osdep_preinit(argc, argv);
struct MPContext *mpctx = mp_create();
struct MPOpts *opts = mpctx->opts;