summaryrefslogtreecommitdiffstats
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
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.
-rw-r--r--osdep/main-fn-win.c12
-rw-r--r--waftools/detections/compiler.py4
2 files changed, 7 insertions, 9 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,
diff --git a/waftools/detections/compiler.py b/waftools/detections/compiler.py
index c382afcab7..dcfa9f1097 100644
--- a/waftools/detections/compiler.py
+++ b/waftools/detections/compiler.py
@@ -63,8 +63,8 @@ def __add_mswin_flags__(ctx):
def __add_mingw_flags__(ctx):
__add_mswin_flags__(ctx)
- ctx.env.CFLAGS += ['-municode', '-D__USE_MINGW_ANSI_STDIO=1']
- ctx.env.LAST_LINKFLAGS += ['-municode', '-mwindows']
+ ctx.env.CFLAGS += ['-D__USE_MINGW_ANSI_STDIO=1']
+ ctx.env.LAST_LINKFLAGS += ['-mwindows']
def __add_cygwin_flags__(ctx):
__add_mswin_flags__(ctx)