commit 52c000c2478197a4e7b7fe883deb9e6744ee68b2 (tree)
parent db63e4725a8fe0370ec88fcbf6f5a3085f6bd767
Author: Elaine Gibson <ypsvlq@gmail.com>
Date: Tue, 14 Apr 2026 20:44:00 +0100
std.Io.Threaded: handle haiku syscall returns correctly
Diffstat:
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git 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;