Jeroen van Rijn 2 months ago
parent
commit
a1759aa2fa
2 changed files with 21 additions and 16 deletions
  1. 3 16
      core/os/os2/user_posix.odin
  2. 18 0
      core/os/os2/user_windows.odin

+ 3 - 16
core/os/os2/user.odin → core/os/os2/user_posix.odin

@@ -1,16 +1,13 @@
+#+build !windows
 package os2
 
 import "base:runtime"
-@(require) import win32 "core:sys/windows"
 
 @(require_results)
 user_cache_dir :: proc(allocator: runtime.Allocator) -> (dir: string, err: Error) {
 	temp_allocator := TEMP_ALLOCATOR_GUARD({ allocator })
 
 	#partial switch ODIN_OS {
-	case .Windows:
-		guid := win32.FOLDERID_LocalAppData
-		return _get_known_folder_path(&guid, allocator)
 	case .Darwin:
 		dir = get_env("HOME", temp_allocator)
 		if dir != "" {
@@ -37,9 +34,6 @@ user_config_dir :: proc(allocator: runtime.Allocator) -> (dir: string, err: Erro
 	temp_allocator := TEMP_ALLOCATOR_GUARD({ allocator })
 
 	#partial switch ODIN_OS {
-	case .Windows:
-		guid := win32.FOLDERID_RoamingAppData
-		return _get_known_folder_path(&guid, allocator)
 	case .Darwin:
 		dir = get_env("HOME", temp_allocator)
 		if dir != "" {
@@ -63,15 +57,8 @@ user_config_dir :: proc(allocator: runtime.Allocator) -> (dir: string, err: Erro
 
 @(require_results)
 user_home_dir :: proc(allocator: runtime.Allocator) -> (dir: string, err: Error) {
-	#partial switch ODIN_OS {
-	case .Windows:
-		guid := win32.FOLDERID_Profile
-		return _get_known_folder_path(&guid, allocator)
-	case:
-		if v := get_env("HOME", allocator); v != "" {
-			return v, nil
-		}
-
+	if v := get_env("HOME", allocator); v != "" {
+		return v, nil
 	}
 	return "", .Invalid_Path
 }

+ 18 - 0
core/os/os2/user_windows.odin

@@ -3,6 +3,24 @@ package os2
 import "base:runtime"
 @(require) import win32 "core:sys/windows"
 
+@(require_results)
+user_cache_dir :: proc(allocator: runtime.Allocator) -> (dir: string, err: Error) {
+	guid := win32.FOLDERID_LocalAppData
+	return _get_known_folder_path(&guid, allocator)
+}
+
+@(require_results)
+user_config_dir :: proc(allocator: runtime.Allocator) -> (dir: string, err: Error) {
+	guid := win32.FOLDERID_RoamingAppData
+	return _get_known_folder_path(&guid, allocator)
+}
+
+@(require_results)
+user_home_dir :: proc(allocator: runtime.Allocator) -> (dir: string, err: Error) {
+	guid := win32.FOLDERID_Profile
+	return _get_known_folder_path(&guid, allocator)
+}
+
 @(require_results)
 _get_known_folder_path :: proc(rfid: win32.REFKNOWNFOLDERID, allocator: runtime.Allocator) -> (dir: string, err: Error) {
 	// https://learn.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-shgetknownfolderpath