commit 0cd63b28f32fdf5aaedf9daa8ff60ec58de2f7f4 (tree)
parent 477e3f64fc632cc87956a9a6354c9069b93d5919
Author: Andrew Kelley <superjoe30@gmail.com>
Date: Wed, 3 Jan 2018 22:38:13 -0500
fix self-hosted build on windows
Diffstat:
3 files changed, 21 insertions(+), 8 deletions(-)
diff --git 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
@@ -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
@@ -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;
}