ref: eab5599e480cc900f86acca3d157ad670110d570
dir: /lib/std/syswrap-ss+osx.myr/
use sys use "errno.use" use "cstrconv.use" use "slcp.use" use "die.use" pkg std = const exit : (status:int -> void) pkglocal const bgetcwd : (buf : byte[:] -> errno) ;; const exit = {status; sys.exit(status)} const bgetcwd = {buf var path : byte[sys.Maxpathlen] var fd, len, err fd = sys.open(".", sys.Ordonly) if fd < 0 -> fd castto(errno) ;; /* FIXME: if the path is longer than sys.Pathmax, we should fall back to the ugly method of finding the path. */ err = sys.fcntl(fd, sys.Fgetpath, path[:] castto(byte#)) castto(errno) if err < 0 -> err ;; len = cstrlen(path[:]) if len >= buf.len -> Erange ;; slcp(buf[:len], path[:len]) -> len castto(errno) }