summaryrefslogtreecommitdiffstats
path: root/osdep
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2019-06-30 01:29:06 +0200
committerwm4 <wm4@nowhere>2019-09-19 20:37:05 +0200
commit943fc889894e157f0678a5b3e39d3d41f3eda3b7 (patch)
treed0cc1f8f0d5e23297aa461517ba12b6d07947510 /osdep
parent3e22ed46b41bd4e6503bc68fff8322ff937add26 (diff)
downloadmpv-943fc889894e157f0678a5b3e39d3d41f3eda3b7.tar.bz2
mpv-943fc889894e157f0678a5b3e39d3d41f3eda3b7.tar.xz
win32: remove -municode from mpv binary
If this is used, the runtime expects that wmain() instead of main() is defined. This caused me severe problems in a certain now irrelevant case. I think it's a good idea to avoid this special case. We can just use main() and call GetCommandLineW() instead. This function returns a single string, so use CommandLineToArgvW() to split it, and hope it has the same semantics. Should this ever return NULL, hope that it leaves argc at 0. Untested, I think.
Diffstat (limited to 'osdep')
-rw-r--r--osdep/main-fn-win.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/osdep/main-fn-win.c b/osdep/main-fn-win.c
index f003a5502b..0d138f9c00 100644
--- a/osdep/main-fn-win.c
+++ b/osdep/main-fn-win.c
@@ -11,11 +11,6 @@
#include "osdep/terminal.h"
#include "osdep/main-fn.h"
-int wmain(int argc, wchar_t *argv[]);
-
-// mpv does its own wildcard expansion in the option parser
-int _dowildcard = 0;
-
static bool is_valid_handle(HANDLE h)
{
return h != INVALID_HANDLE_VALUE && h != NULL &&
@@ -48,7 +43,7 @@ static void microsoft_nonsense(void)
pSetSearchPathMode(BASE_SEARCH_PATH_ENABLE_SAFE_SEARCHMODE);
}
-int wmain(int argc, wchar_t *argv[])
+int main(int argc_, char **argv_)
{
microsoft_nonsense();
@@ -61,11 +56,14 @@ int wmain(int argc, wchar_t *argv[])
// is expecting mpv to show some UI, so enable the pseudo-GUI profile.
bool gui = !has_console && !has_redirected_stdio();
+ int argc = 0;
+ wchar_t **argv = CommandLineToArgvW(GetCommandLineW(), &argc);
+
int argv_len = 0;
char **argv_u8 = NULL;
// Build mpv's UTF-8 argv, and add the pseudo-GUI profile if necessary
- if (argv[0])
+ if (argc > 0 && argv[0])
MP_TARRAY_APPEND(NULL, argv_u8, argv_len, mp_to_utf8(argv_u8, argv[0]));
if (gui) {
MP_TARRAY_APPEND(NULL, argv_u8, argv_len,