Windows: unicode command line

pull/1292/head
Vitaly Takmazov 2019-07-24 14:49:00 +03:00 committed by Alexander Medvednikov
parent 93a3521a67
commit 0bbefca875
3 changed files with 13 additions and 2 deletions

View File

@ -193,6 +193,7 @@ fn (v mut V) compile() {
#ifdef _WIN32
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <shellapi.h>
#include <io.h> // _waccess
#include <fcntl.h> // _O_U8TEXT
#include <direct.h> // _wgetcwd

View File

@ -6,6 +6,7 @@ import os
#flag windows @VROOT/thirdparty/microsoft_craziness/microsoft_craziness.o
#flag windows -l ole32
#flag windows -l oleaut32
#flag windows -l shell32
// Emily: If these arent included then msvc assumes that
// these return int (which should be 64bit)

View File

@ -93,8 +93,17 @@ fn todo_remove(){}
fn init_os_args(argc int, argv *byteptr) []string {
mut args := []string
for i := 0; i < argc; i++ {
args << string(argv[i])
$if windows {
mut args_list := &voidptr(0)
mut args_count := 0
args_list = C.CommandLineToArgvW(C.GetCommandLine(), &args_count)
for i := 0; i < args_count; i++ {
args << string_from_wide(&u16(args_list[i]))
}
} $else {
for i := 0; i < argc; i++ {
args << string(argv[i])
}
}
return args
}