diff options
| author | gingerBill <bill@gingerbill.org> | 2022-06-02 13:02:16 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2022-06-02 13:02:16 +0100 |
| commit | fb49841b1d8e84cb721f5f73200d4c8158cbb4fa (patch) | |
| tree | a89451b5b3195b6e8160a39fc34e3a846cdcded8 /core/sys/windows | |
| parent | 01ea0d6f1e0b32c248d5ddfc0980a350361f9414 (diff) | |
Remove `strings` dependency from `core:sys/windows`
Diffstat (limited to 'core/sys/windows')
| -rw-r--r-- | core/sys/windows/comdlg32.odin | 5 | ||||
| -rw-r--r-- | core/sys/windows/util.odin | 17 |
2 files changed, 19 insertions, 3 deletions
diff --git a/core/sys/windows/comdlg32.odin b/core/sys/windows/comdlg32.odin index a3709cba7..42a1fd60f 100644 --- a/core/sys/windows/comdlg32.odin +++ b/core/sys/windows/comdlg32.odin @@ -2,7 +2,6 @@ package sys_windows foreign import "system:Comdlg32.lib" -import "core:strings" LPOFNHOOKPROC :: #type proc "stdcall" (hdlg: HWND, msg: u32, wparam: WPARAM, lparam: LPARAM) -> UINT_PTR @@ -49,6 +48,9 @@ SAVE_TITLE :: "Select file to save" SAVE_FLAGS :: u32(OFN_OVERWRITEPROMPT | OFN_EXPLORER) SAVE_EXT :: "txt" +/* +import "core:strings" + Open_Save_Mode :: enum { Open = 0, Save = 1, @@ -121,6 +123,7 @@ select_file_to_save :: proc(title := SAVE_TITLE, dir := ".", path, ok = _open_file_dialog(title, dir, filters, default_filter, flags, default_ext, Open_Save_Mode.Save, allocator) return } +*/ // TODO: Implement convenience function for select_file_to_open with ALLOW_MULTI_SELECT that takes // it output of the form "path\u0000\file1u\0000file2" and turns it into []string with the path + file pre-concatenated for you. diff --git a/core/sys/windows/util.odin b/core/sys/windows/util.odin index 1c8b9175b..c350032f0 100644 --- a/core/sys/windows/util.odin +++ b/core/sys/windows/util.odin @@ -1,7 +1,6 @@ // +build windows package sys_windows -import "core:strings" import "core:runtime" import "core:intrinsics" @@ -100,6 +99,20 @@ utf16_to_utf8 :: proc(s: []u16, allocator := context.temp_allocator) -> (res: st // AdvAPI32, NetAPI32 and UserENV helpers. allowed_username :: proc(username: string) -> bool { + contains_any :: proc(s, chars: string) -> bool { + if chars == "" { + return false + } + for c in transmute([]byte)s { + for b in transmute([]byte)chars { + if c == b { + return true + } + } + } + return false + } + /* User account names are limited to 20 characters and group names are limited to 256 characters. In addition, account names cannot be terminated by a period and they cannot include commas or any of the following printable characters: @@ -120,7 +133,7 @@ allowed_username :: proc(username: string) -> bool { return false } } - if strings.contains_any(username, _DISALLOWED) { + if contains_any(username, _DISALLOWED) { return false } |