diff --git a/build.zig b/build.zig index 2ff98819f1..d78a9de37b 100644 --- a/build.zig +++ b/build.zig @@ -209,8 +209,19 @@ pub fn installCHeaders(b: &Builder, c_header_files: []const u8) { fn nextValue(index: &usize, build_info: []const u8) -> []const u8 { const start = *index; - while (build_info[*index] != '\n' and build_info[*index] != '\r') : (*index += 1) { } - const result = build_info[start..*index]; - *index += 1; - return result; + while (true) : (*index += 1) { + switch (build_info[*index]) { + '\n' => { + const result = build_info[start..*index]; + *index += 1; + return result; + }, + '\r' => { + const result = build_info[start..*index]; + *index += 2; + return result; + }, + else => continue, + } + } } diff --git a/std/os/child_process.zig b/std/os/child_process.zig index 6e86c99056..3a1cd02b56 100644 --- a/std/os/child_process.zig +++ b/std/os/child_process.zig @@ -15,6 +15,7 @@ const LinkedList = std.LinkedList; error PermissionDenied; error ProcessNotFound; +error InvalidName; var children_nodes = LinkedList(&ChildProcess).init(); @@ -643,6 +644,7 @@ fn windowsCreateProcess(app_name: &u8, cmd_line: &u8, envp_ptr: ?&u8, cwd_ptr: ? return switch (err) { windows.ERROR.FILE_NOT_FOUND, windows.ERROR.PATH_NOT_FOUND => error.FileNotFound, windows.ERROR.INVALID_PARAMETER => unreachable, + windows.ERROR.INVALID_NAME => error.InvalidName, else => os.unexpectedErrorWindows(err), }; } diff --git a/std/os/index.zig b/std/os/index.zig index e1b6a9dcce..f668546a37 100644 --- a/std/os/index.zig +++ b/std/os/index.zig @@ -1516,8 +1516,8 @@ const unexpected_error_tracing = false; /// and you get an unexpected error. pub fn unexpectedErrorPosix(errno: usize) -> error { if (unexpected_error_tracing) { - io.stderr.printf("unexpected errno: {}\n", errno) %% return error.Unexpected; - debug.printStackTrace() %% return error.Unexpected; + debug.warn("unexpected errno: {}\n", errno); + debug.dumpStackTrace(); } return error.Unexpected; } @@ -1526,8 +1526,8 @@ pub fn unexpectedErrorPosix(errno: usize) -> error { /// and you get an unexpected error. pub fn unexpectedErrorWindows(err: windows.DWORD) -> error { if (unexpected_error_tracing) { - io.stderr.printf("unexpected GetLastError(): {}\n", err) %% return error.Unexpected; - debug.printStackTrace() %% return error.Unexpected; + debug.warn("unexpected GetLastError(): {}\n", err); + debug.dumpStackTrace(); } return error.Unexpected; }