mirror of
https://github.com/odin-lang/Odin.git
synced 2026-01-09 06:23:14 +00:00
Merge branch 'odin-lang:master' into master
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user