diff --git a/core/os/os_darwin.odin b/core/os/os_darwin.odin index 2bb6c0c59..e00c63ccd 100644 --- a/core/os/os_darwin.odin +++ b/core/os/os_darwin.odin @@ -1095,7 +1095,8 @@ unset_env :: proc(key: string) -> Error { } @(require_results) -get_current_directory :: proc() -> string { +get_current_directory :: proc(allocator := context.allocator) -> string { + context.allocator = allocator page_size := get_page_size() // NOTE(tetra): See note in os_linux.odin/get_current_directory. buf := make([dynamic]u8, page_size) for { diff --git a/core/os/os_freebsd.odin b/core/os/os_freebsd.odin index 241f42c0b..f617cf973 100644 --- a/core/os/os_freebsd.odin +++ b/core/os/os_freebsd.odin @@ -840,7 +840,8 @@ get_env :: proc(key: string, allocator := context.allocator) -> (value: string) } @(require_results) -get_current_directory :: proc() -> string { +get_current_directory :: proc(allocator := context.allocator) -> string { + context.allocator = allocator // NOTE(tetra): I would use PATH_MAX here, but I was not able to find // an authoritative value for it across all systems. // The largest value I could find was 4096, so might as well use the page size. diff --git a/core/os/os_linux.odin b/core/os/os_linux.odin index 9132edbfe..8c8cd7f73 100644 --- a/core/os/os_linux.odin +++ b/core/os/os_linux.odin @@ -985,7 +985,8 @@ unset_env :: proc(key: string) -> Error { } @(require_results) -get_current_directory :: proc() -> string { +get_current_directory :: proc(allocator := context.allocator) -> string { + context.allocator = allocator // NOTE(tetra): I would use PATH_MAX here, but I was not able to find // an authoritative value for it across all systems. // The largest value I could find was 4096, so might as well use the page size. diff --git a/core/os/os_netbsd.odin b/core/os/os_netbsd.odin index ba9b40fc3..493527803 100644 --- a/core/os/os_netbsd.odin +++ b/core/os/os_netbsd.odin @@ -894,7 +894,8 @@ get_env :: proc(key: string, allocator := context.allocator) -> (value: string) } @(require_results) -get_current_directory :: proc() -> string { +get_current_directory :: proc(allocator := context.allocator) -> string { + context.allocator = allocator // NOTE(tetra): I would use PATH_MAX here, but I was not able to find // an authoritative value for it across all systems. // The largest value I could find was 4096, so might as well use the page size. diff --git a/core/os/os_openbsd.odin b/core/os/os_openbsd.odin index aff78dc60..62872d9dc 100644 --- a/core/os/os_openbsd.odin +++ b/core/os/os_openbsd.odin @@ -806,7 +806,8 @@ get_env :: proc(key: string, allocator := context.allocator) -> (value: string) } @(require_results) -get_current_directory :: proc() -> string { +get_current_directory :: proc(allocator := context.allocator) -> string { + context.allocator = allocator buf := make([dynamic]u8, MAX_PATH) for { cwd := _unix_getcwd(cstring(raw_data(buf)), c.size_t(len(buf)))