Browse Source

Merge pull request #1548 from colrdavidson/darwin_docs

Add make_directory so darwin can build html docs
Jeroen van Rijn 3 years ago
parent
commit
8cecb6b9f5
1 changed files with 10 additions and 0 deletions
  1. 10 0
      core/os/os_darwin.odin

+ 10 - 0
core/os/os_darwin.odin

@@ -313,6 +313,7 @@ foreign libc {
 	@(link_name="getenv")   _unix_getenv   :: proc(cstring) -> cstring ---
 	@(link_name="getenv")   _unix_getenv   :: proc(cstring) -> cstring ---
 	@(link_name="getcwd")   _unix_getcwd   :: proc(buf: cstring, len: c.size_t) -> cstring ---
 	@(link_name="getcwd")   _unix_getcwd   :: proc(buf: cstring, len: c.size_t) -> cstring ---
 	@(link_name="chdir")    _unix_chdir    :: proc(buf: cstring) -> c.int ---
 	@(link_name="chdir")    _unix_chdir    :: proc(buf: cstring) -> c.int ---
+	@(link_name="mkdir")    _unix_mkdir    :: proc(buf: cstring, mode: u32) -> c.int ---
 	@(link_name="realpath") _unix_realpath :: proc(path: cstring, resolved_path: rawptr) -> rawptr ---
 	@(link_name="realpath") _unix_realpath :: proc(path: cstring, resolved_path: rawptr) -> rawptr ---
 
 
 	@(link_name="strerror") _darwin_string_error :: proc(num : c.int) -> cstring ---
 	@(link_name="strerror") _darwin_string_error :: proc(num : c.int) -> cstring ---
@@ -670,6 +671,15 @@ set_current_directory :: proc(path: string) -> (err: Errno) {
 	return ERROR_NONE
 	return ERROR_NONE
 }
 }
 
 
+make_directory :: proc(path: string, mode: u32 = 0o775) -> Errno {
+	path_cstr := strings.clone_to_cstring(path, context.temp_allocator)
+	res := _unix_mkdir(path_cstr, mode)
+	if res == -1 {
+		return Errno(get_last_error())
+	}
+	return ERROR_NONE
+}
+
 exit :: proc "contextless" (code: int) -> ! {
 exit :: proc "contextless" (code: int) -> ! {
 	_unix_exit(i32(code))
 	_unix_exit(i32(code))
 }
 }