authorgravatar for qbradley@qbradley.comQuetzal Bradley <qbradley@qbradley.com> 2019-02-17 13:08:08-08:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-02-17 23:21:45-05:00
log7e549540527fec891bc67d5e657f82b7087530a3
treec534e4f2b4fbbaae2fac3575e7755e61afb64424
parentde18ece29436290cae3608d2c942e7e0a69f1a44

fix openWriteNoClobber and add test


2 files changed, 12 insertions(+), 1 deletions(-)

std/io_test.zig+11
......@@ -29,6 +29,17 @@ test "write a file, read it, then delete it" {
2929 try st.print("end");
3030 try buf_stream.flush();
3131 }
32
33 {
34 // make sure openWriteNoClobber doesn't harm the file
35 if (os.File.openWriteNoClobber(tmp_file_name, os.File.default_mode)) |file| {
36 unreachable;
37 }
38 else |err| {
39 std.debug.assert(err == os.File.OpenError.PathAlreadyExists);
40 }
41 }
42
3243 {
3344 var file = try os.File.openRead(tmp_file_name);
3445 defer file.close();
std/os/file.zig+1-1
......@@ -105,7 +105,7 @@ pub const File = struct {
105105 pub fn openWriteNoClobber(path: []const u8, file_mode: Mode) OpenError!File {
106106 if (is_posix) {
107107 const path_c = try os.toPosixPath(path);
108 return openWriteNoClobberC(path_c, file_mode);
108 return openWriteNoClobberC(&path_c, file_mode);
109109 } else if (is_windows) {
110110 const path_w = try windows_util.sliceToPrefixedFileW(path);
111111 return openWriteNoClobberW(&path_w, file_mode);