Merge branch 'odin-lang:master' into master

This commit is contained in:
Emir
2024-07-23 20:38:04 +03:00
committed by GitHub
3 changed files with 28 additions and 8 deletions

View File

@@ -17,10 +17,7 @@ _error_string :: proc(errno: i32) -> string {
if idx, ok := slice.binary_search(ti.values, err); ok {
return ti.names[idx]
}
// TODO(bill): _error_string for windows
// FormatMessageW
return ""
return "<unknown platform error>"
}
_get_platform_error :: proc() -> Error {

View File

@@ -231,7 +231,7 @@ _read :: proc(f: ^File_Impl, p: []byte) -> (n: i64, err: Error) {
return 0, nil
}
// TODO(bill): should this be moved to `_File` instead?
// TODO(bill): should this be moved to `File_Impl` instead?
BUF_SIZE :: 386
buf16: [BUF_SIZE]u16
buf8: [4*BUF_SIZE]u8

View File

@@ -139,10 +139,33 @@ can_use_long_paths: bool
@(init)
init_long_path_support :: proc() {
// TODO(bill): init_long_path_support
// ADD THIS SHIT
// registry_path := win32.L(`Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled`)
can_use_long_paths = false
key: win32.HKEY
res := win32.RegOpenKeyExW(win32.HKEY_LOCAL_MACHINE, win32.L(`SYSTEM\CurrentControlSet\Control\FileSystem`), 0, win32.KEY_READ, &key)
defer win32.RegCloseKey(key)
if res != 0 {
return
}
value: u32
size := u32(size_of(value))
res = win32.RegGetValueW(
key,
nil,
win32.L("LongPathsEnabled"),
win32.RRF_RT_ANY,
nil,
&value,
&size,
)
if res != 0 {
return
}
if value == 1 {
can_use_long_paths = true
}
}
@(require_results)