authorgravatar for squeek502@hotmail.comRyan Liptak <squeek502@hotmail.com> 2024-07-13 17:25:06-07:00
committergravatar for squeek502@hotmail.comRyan Liptak <squeek502@hotmail.com> 2024-07-13 18:19:19-07:00
log1a62cfffa79917d930b77f2598b1bfc93efeede5
tree18c3465ef63c25164c536787baae250613c54ad0
parent1418c8a5d49ecc38a20df07151a7fe942992aea4

Replace GetCommandLineW with PEB access, delete GetCommandLine bindings


2 files changed, 3 insertions(+), 5 deletions(-)

lib/std/os/windows/kernel32.zig-3
...@@ -161,9 +161,6 @@ pub extern "kernel32" fn FormatMessageW(dwFlags: DWORD, lpSource: ?LPVOID, dwMes...@@ -161,9 +161,6 @@ pub extern "kernel32" fn FormatMessageW(dwFlags: DWORD, lpSource: ?LPVOID, dwMes
161161
162pub extern "kernel32" fn FreeEnvironmentStringsW(penv: [*:0]u16) callconv(WINAPI) BOOL;162pub extern "kernel32" fn FreeEnvironmentStringsW(penv: [*:0]u16) callconv(WINAPI) BOOL;
163163
164pub extern "kernel32" fn GetCommandLineA() callconv(WINAPI) LPSTR;
165pub extern "kernel32" fn GetCommandLineW() callconv(WINAPI) LPWSTR;
166
167pub extern "kernel32" fn GetConsoleMode(in_hConsoleHandle: HANDLE, out_lpMode: *DWORD) callconv(WINAPI) BOOL;164pub extern "kernel32" fn GetConsoleMode(in_hConsoleHandle: HANDLE, out_lpMode: *DWORD) callconv(WINAPI) BOOL;
168pub extern "kernel32" fn SetConsoleMode(in_hConsoleHandle: HANDLE, in_dwMode: DWORD) callconv(WINAPI) BOOL;165pub extern "kernel32" fn SetConsoleMode(in_hConsoleHandle: HANDLE, in_dwMode: DWORD) callconv(WINAPI) BOOL;
169166
lib/std/process.zig+3-2
...@@ -1150,8 +1150,9 @@ pub const ArgIterator = struct {...@@ -1150,8 +1150,9 @@ pub const ArgIterator = struct {
1150 return ArgIterator{ .inner = try InnerType.init(allocator) };1150 return ArgIterator{ .inner = try InnerType.init(allocator) };
1151 }1151 }
1152 if (native_os == .windows) {1152 if (native_os == .windows) {
1153 const cmd_line_w = windows.kernel32.GetCommandLineW();1153 const cmd_line = std.os.windows.peb().ProcessParameters.CommandLine;
1154 return ArgIterator{ .inner = try InnerType.init(allocator, cmd_line_w) };1154 const cmd_line_w = cmd_line.Buffer.?[0 .. cmd_line.Length / 2 :0];
1155 return ArgIterator{ .inner = try InnerType.init(allocator, cmd_line_w.ptr) };
1155 }1156 }
11561157
1157 return ArgIterator{ .inner = InnerType.init() };1158 return ArgIterator{ .inner = InnerType.init() };