From 52c000c2478197a4e7b7fe883deb9e6744ee68b2 Mon Sep 17 00:00:00 2001 From: Elaine Gibson Date: Tue, 14 Apr 2026 20:44:00 +0100 Subject: [PATCH] std.Io.Threaded: handle haiku syscall returns correctly --- lib/std/Io/Threaded.zig | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/std/Io/Threaded.zig b/lib/std/Io/Threaded.zig index 0294093b77fccbb7cfad12d78f2be0b0e0d4e43d..f1d8183abe0f7491941df29665e66818babee122 100644 --- a/lib/std/Io/Threaded.zig +++ b/lib/std/Io/Threaded.zig @@ -5803,7 +5803,7 @@ fn dirReadHaiku(userdata: ?*anyopaque, dr: *Dir.Reader, buffer: []Dir.Entry) Dir const syscall: Syscall = try .start(); while (true) { const rc = posix.system._kern_rewind_dir(dr.dir.handle); - switch (posix.errno(rc)) { + switch (@as(posix.E, @enumFromInt(@min(rc, 0)))) { .SUCCESS => { syscall.finish(); break; @@ -5825,7 +5825,7 @@ fn dirReadHaiku(userdata: ?*anyopaque, dr: *Dir.Reader, buffer: []Dir.Entry) Dir const syscall: Syscall = try .start(); const n: usize = while (true) { const rc = posix.system._kern_read_dir(dr.dir.handle, dr.buffer.ptr, dr.buffer.len, @truncate(dr.buffer.len / @sizeOf(posix.system.DirEnt))); - switch (posix.errno(rc)) { + switch (@as(posix.E, @enumFromInt(@min(rc, 0)))) { .SUCCESS => { syscall.finish(); break @intCast(rc); @@ -5868,7 +5868,7 @@ fn dirReadHaiku(userdata: ?*anyopaque, dr: *Dir.Reader, buffer: []Dir.Entry) Dir const syscall: Syscall = try .start(); while (true) { const rc = posix.system._kern_read_stat(dr.dir.handle, name, false, &stat, @sizeOf(std.c.Stat)); - switch (posix.errno(rc)) { + switch (@as(posix.E, @enumFromInt(@min(rc, 0)))) { .SUCCESS => { syscall.finish(); break; -- 2.54.0