mirror of
https://github.com/odin-lang/Odin.git
synced 2025-12-30 18:02:02 +00:00
44 lines
1.4 KiB
Odin
44 lines
1.4 KiB
Odin
|
|
package libc
|
|
|
|
// 7.24 String handling
|
|
|
|
when ODIN_OS == "windows" {
|
|
foreign import libc "system:libucrt.lib"
|
|
} else {
|
|
foreign import libc "system:c"
|
|
}
|
|
|
|
foreign libc {
|
|
// 7.24.2 Copying functions
|
|
memcpy :: proc(s1, s2: rawptr, n: size_t) -> rawptr ---
|
|
memmove :: proc(s1, s2: rawptr, n: size_t) -> rawptr ---
|
|
strcpy :: proc(s1: ^char, s2: cstring) -> ^char ---
|
|
strncpy :: proc(s1: ^char, s2: cstring, n: size_t) -> ^char ---
|
|
|
|
// 7.24.3 Concatenation functions
|
|
strcat :: proc(s1: ^char, s2: cstring) -> ^char ---
|
|
strncat :: proc(s1: ^char, s2: cstring, n: size_t) -> ^char ---
|
|
|
|
// 7.24.4 Comparison functions
|
|
memcmp :: proc(s1, s2: rawptr, n: size_t) -> int ---
|
|
strcmp :: proc(s1, s2: cstring) -> int ---
|
|
strcoll :: proc(s1, s2: cstring) -> int ---
|
|
strncmp :: proc(s1, s2: cstring, n: size_t) -> int ---
|
|
strxfrm :: proc(s1: ^char, s2: cstring, n: size_t) -> size_t ---
|
|
|
|
// 7.24.5 Search functions
|
|
memchr :: proc(s: rawptr, c: int, n: size_t) -> rawptr ---
|
|
strchr :: proc(s: cstring, c: int) -> ^char ---
|
|
strcspn :: proc(s1, s2: cstring) -> size_t ---
|
|
strpbrk :: proc(s1, s2: cstring) -> ^char ---
|
|
strrchr :: proc(s: ^char, c: int) -> ^char ---
|
|
strcpn :: proc(s1, s2: cstring) -> ^char ---
|
|
strtok :: proc(s1: ^char, s2: cstring) -> ^char ---
|
|
|
|
// 7.24.6 Miscellaneous functions
|
|
memset :: proc(s: rawptr, c: int, n: size_t) -> rawptr ---
|
|
strerror :: proc(errnum: int) -> ^char ---
|
|
strlen :: proc(s: cstring) -> size_t ---
|
|
}
|