Windows: unicode command line
							parent
							
								
									93a3521a67
								
							
						
					
					
						commit
						0bbefca875
					
				|  | @ -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
 | ||||
|  |  | |||
|  | @ -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)
 | ||||
|  |  | |||
							
								
								
									
										13
									
								
								vlib/os/os.v
								
								
								
								
							
							
						
						
									
										13
									
								
								vlib/os/os.v
								
								
								
								
							|  | @ -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 | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue