mirror of
https://github.com/Ed94/Odin.git
synced 2026-07-14 15:11:25 -07:00
Remove strings dependency from core:sys/windows
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user