Fix read_dir on OSX

This commit is contained in:
Ricardo Silva
2021-09-13 12:34:36 +01:00
parent b712c84afb
commit 01aa0c4151
2 changed files with 6 additions and 7 deletions
-2
View File
@@ -19,8 +19,6 @@ read_dir :: proc(fd: Handle, n: int, allocator := context.allocator) -> (fi: []F
return return
} }
defer delete(dirpath)
n := n n := n
size := n size := n
if n <= 0 { if n <= 0 {
+5 -4
View File
@@ -215,13 +215,14 @@ OS_Stat :: struct {
_reserve2: i64, // RESERVED _reserve2: i64, // RESERVED
} }
// NOTE(laleksic, 2021-01-21): Comment and rename these to match OS_Stat above DARWIN_MAXPATHLEN :: 1024
Dirent :: struct { Dirent :: struct {
ino: u64, ino: u64,
off: u64, off: u64,
reclen: u16, reclen: u16,
namlen: u16,
type: u8, type: u8,
name: [256]byte, name: [DARWIN_MAXPATHLEN]byte,
} }
Dir :: distinct rawptr // DIR* Dir :: distinct rawptr // DIR*
@@ -289,10 +290,10 @@ foreign libc {
@(link_name="fstat64") _unix_fstat :: proc(fd: Handle, stat: ^OS_Stat) -> c.int --- @(link_name="fstat64") _unix_fstat :: proc(fd: Handle, stat: ^OS_Stat) -> c.int ---
@(link_name="readlink") _unix_readlink :: proc(path: cstring, buf: ^byte, bufsiz: c.size_t) -> c.ssize_t --- @(link_name="readlink") _unix_readlink :: proc(path: cstring, buf: ^byte, bufsiz: c.size_t) -> c.ssize_t ---
@(link_name="access") _unix_access :: proc(path: cstring, mask: int) -> int --- @(link_name="access") _unix_access :: proc(path: cstring, mask: int) -> int ---
@(link_name="fdopendir") _unix_fdopendir :: proc(fd: Handle) -> Dir --- @(link_name="fdopendir$INODE64") _unix_fdopendir :: proc(fd: Handle) -> Dir ---
@(link_name="closedir") _unix_closedir :: proc(dirp: Dir) -> c.int --- @(link_name="closedir") _unix_closedir :: proc(dirp: Dir) -> c.int ---
@(link_name="rewinddir") _unix_rewinddir :: proc(dirp: Dir) --- @(link_name="rewinddir") _unix_rewinddir :: proc(dirp: Dir) ---
@(link_name="readdir_r") _unix_readdir_r :: proc(dirp: Dir, entry: ^Dirent, result: ^^Dirent) -> c.int --- @(link_name="readdir_r$INODE64") _unix_readdir_r :: proc(dirp: Dir, entry: ^Dirent, result: ^^Dirent) -> c.int ---
@(link_name="fcntl") _unix_fcntl :: proc(fd: Handle, cmd: c.int, buf: ^byte) -> c.int --- @(link_name="fcntl") _unix_fcntl :: proc(fd: Handle, cmd: c.int, buf: ^byte) -> c.int ---
@(link_name="malloc") _unix_malloc :: proc(size: int) -> rawptr --- @(link_name="malloc") _unix_malloc :: proc(size: int) -> rawptr ---