Add buffered get_env variants to os2

This commit is contained in:
Jeroen van Rijn
2025-06-16 20:12:27 +02:00
parent eef07431ef
commit 6347c87b5b
7 changed files with 140 additions and 13 deletions
+2 -2
View File
@@ -41,13 +41,13 @@ lookup_env_buffer :: proc(buf: []u8, key: string) -> (value: string, err: Error)
}
n2 := win32.GetEnvironmentVariableW(wkey, nil, 0)
if n2 == 0 && get_last_error() == ERROR_ENVVAR_NOT_FOUND {
if n2 == 0 {
return "", .Env_Var_Not_Found
}
val_buf: [513]u16
n2 = win32.GetEnvironmentVariableW(wkey, raw_data(val_buf[:]), u32(len(val_buf[:])))
if n2 == 0 && get_last_error() == ERROR_ENVVAR_NOT_FOUND {
if n2 == 0 {
return "", .Env_Var_Not_Found
} else if int(n2) > len(buf) {
return "", .Buffer_Full