authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-12-18 19:57:01-08:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-12-23 22:15:10-08:00
log9bbb8e0d8e8ce413ad2a9125b1eb9ddbf32b6c87
tree6a42782bc073303feb1157c705fb129fb1972b24
parentf078c7138f0dfbab95d8963e6c067515c6a54460

std.posix: make nlink_t on unsupported systems u0

instead of void

4 files changed, 12 insertions(+), 16 deletions(-)

lib/std/Io/Threaded.zig+2-2
...@@ -2168,7 +2168,7 @@ fn fileStatWindows(userdata: ?*anyopaque, file: File) File.StatError!File.Stat {...@@ -2168,7 +2168,7 @@ fn fileStatWindows(userdata: ?*anyopaque, file: File) File.StatError!File.Stat {
2168 .atime = windows.fromSysTime(info.BasicInformation.LastAccessTime),2168 .atime = windows.fromSysTime(info.BasicInformation.LastAccessTime),
2169 .mtime = windows.fromSysTime(info.BasicInformation.LastWriteTime),2169 .mtime = windows.fromSysTime(info.BasicInformation.LastWriteTime),
2170 .ctime = windows.fromSysTime(info.BasicInformation.ChangeTime),2170 .ctime = windows.fromSysTime(info.BasicInformation.ChangeTime),
2171 .nlink = {},2171 .nlink = 0,
2172 };2172 };
2173}2173}
21742174
...@@ -3763,7 +3763,7 @@ fn dirReadWindows(userdata: ?*anyopaque, dr: *Dir.Reader, buffer: []Dir.Entry) D...@@ -3763,7 +3763,7 @@ fn dirReadWindows(userdata: ?*anyopaque, dr: *Dir.Reader, buffer: []Dir.Entry) D
3763 null,3763 null,
3764 &io_status_block,3764 &io_status_block,
3765 unreserved_buffer.ptr,3765 unreserved_buffer.ptr,
3766 std.math.cast(w.ULONG, unreserved_buffer.len) orelse std.math.maxInt(w.ULONG),3766 std.math.lossyCast(w.ULONG, unreserved_buffer.len),
3767 .BothDirectory,3767 .BothDirectory,
3768 w.FALSE,3768 w.FALSE,
3769 null,3769 null,
lib/std/Io/Writer.zig+3-3
...@@ -2842,7 +2842,7 @@ test "discarding sendFile" {...@@ -2842,7 +2842,7 @@ test "discarding sendFile" {
2842 try file_writer.interface.writeByte('h');2842 try file_writer.interface.writeByte('h');
2843 try file_writer.interface.flush();2843 try file_writer.interface.flush();
28442844
2845 var file_reader = file_writer.moveToReader(io);2845 var file_reader = file_writer.moveToReader();
2846 try file_reader.seekTo(0);2846 try file_reader.seekTo(0);
28472847
2848 var w_buffer: [256]u8 = undefined;2848 var w_buffer: [256]u8 = undefined;
...@@ -2864,7 +2864,7 @@ test "allocating sendFile" {...@@ -2864,7 +2864,7 @@ test "allocating sendFile" {
2864 try file_writer.interface.writeAll("abcd");2864 try file_writer.interface.writeAll("abcd");
2865 try file_writer.interface.flush();2865 try file_writer.interface.flush();
28662866
2867 var file_reader = file_writer.moveToReader(io);2867 var file_reader = file_writer.moveToReader();
2868 try file_reader.seekTo(0);2868 try file_reader.seekTo(0);
2869 try file_reader.interface.fill(2);2869 try file_reader.interface.fill(2);
28702870
...@@ -2888,7 +2888,7 @@ test sendFileReading {...@@ -2888,7 +2888,7 @@ test sendFileReading {
2888 try file_writer.interface.writeAll("abcd");2888 try file_writer.interface.writeAll("abcd");
2889 try file_writer.interface.flush();2889 try file_writer.interface.flush();
28902890
2891 var file_reader = file_writer.moveToReader(io);2891 var file_reader = file_writer.moveToReader();
2892 try file_reader.seekTo(0);2892 try file_reader.seekTo(0);
2893 try file_reader.interface.fill(2);2893 try file_reader.interface.fill(2);
28942894
lib/std/fs/test.zig+6-11
...@@ -24,7 +24,7 @@ const PathType = enum {...@@ -24,7 +24,7 @@ const PathType = enum {
24 absolute,24 absolute,
25 unc,25 unc,
2626
27 pub fn isSupported(self: PathType, target_os: std.Target.Os) bool {27 fn isSupported(self: PathType, target_os: std.Target.Os) bool {
28 return switch (self) {28 return switch (self) {
29 .relative => true,29 .relative => true,
30 .absolute => target_os.tag == .windows, // TODO: implement getPathForHandle for other targets30 .absolute => target_os.tag == .windows, // TODO: implement getPathForHandle for other targets
...@@ -32,10 +32,10 @@ const PathType = enum {...@@ -32,10 +32,10 @@ const PathType = enum {
32 };32 };
33 }33 }
3434
35 pub const TransformError = Dir.RealPathError || error{OutOfMemory};35 const TransformError = Dir.RealPathError || error{OutOfMemory};
36 pub const TransformFn = fn (allocator: mem.Allocator, dir: Dir, relative_path: [:0]const u8) TransformError![:0]const u8;36 const TransformFn = fn (allocator: mem.Allocator, dir: Dir, relative_path: [:0]const u8) TransformError![:0]const u8;
3737
38 pub fn getTransformFn(comptime path_type: PathType) TransformFn {38 fn getTransformFn(comptime path_type: PathType) TransformFn {
39 switch (path_type) {39 switch (path_type) {
40 .relative => return struct {40 .relative => return struct {
41 fn transform(allocator: mem.Allocator, dir: Dir, relative_path: [:0]const u8) TransformError![:0]const u8 {41 fn transform(allocator: mem.Allocator, dir: Dir, relative_path: [:0]const u8) TransformError![:0]const u8 {
...@@ -1623,7 +1623,7 @@ test "copyFile" {...@@ -1623,7 +1623,7 @@ test "copyFile" {
1623 try ctx.dir.copyFile(src_file, ctx.dir, dest_file, io, .{});1623 try ctx.dir.copyFile(src_file, ctx.dir, dest_file, io, .{});
1624 defer ctx.dir.deleteFile(io, dest_file) catch {};1624 defer ctx.dir.deleteFile(io, dest_file) catch {};
16251625
1626 try ctx.dir.copyFile(src_file, ctx.dir, dest_file2, io, .{ .permissions = .default_file });1626 try ctx.dir.copyFile(src_file, ctx.dir, dest_file2, io, .{});
1627 defer ctx.dir.deleteFile(io, dest_file2) catch {};1627 defer ctx.dir.deleteFile(io, dest_file2) catch {};
16281628
1629 try expectFileContents(io, ctx.dir, dest_file, data);1629 try expectFileContents(io, ctx.dir, dest_file, data);
...@@ -1740,12 +1740,7 @@ test "open file with exclusive lock twice, make sure second lock waits" {...@@ -1740,12 +1740,7 @@ test "open file with exclusive lock twice, make sure second lock waits" {
1740 var started: std.Thread.ResetEvent = .unset;1740 var started: std.Thread.ResetEvent = .unset;
1741 var locked: std.Thread.ResetEvent = .unset;1741 var locked: std.Thread.ResetEvent = .unset;
17421742
1743 const t = try std.Thread.spawn(.{}, S.checkFn, .{1743 const t = try std.Thread.spawn(.{}, S.checkFn, .{ ctx, filename, &started, &locked });
1744 ctx,
1745 filename,
1746 &started,
1747 &locked,
1748 });
1749 defer t.join();1744 defer t.join();
17501745
1751 // Wait for the spawned thread to start trying to acquire the exclusive file lock.1746 // Wait for the spawned thread to start trying to acquire the exclusive file lock.
lib/std/posix.zig+1
...@@ -54,6 +54,7 @@ else switch (native_os) {...@@ -54,6 +54,7 @@ else switch (native_os) {
54 pub const uid_t = void;54 pub const uid_t = void;
55 pub const gid_t = void;55 pub const gid_t = void;
56 pub const mode_t = u0;56 pub const mode_t = u0;
57 pub const nlink_t = u0;
57 pub const ino_t = void;58 pub const ino_t = void;
58 pub const IFNAMESIZE = {};59 pub const IFNAMESIZE = {};
59 pub const SIG = void;60 pub const SIG = void;