|
@@ -11,24 +11,24 @@ when ODIN_OS == "windows" {
|
|
|
@(default_calling_convention="c")
|
|
|
foreign libc {
|
|
|
// 7.29.2 Formatted wide character input/output functions
|
|
|
- fwprintf :: proc(stream: ^FILE, format: ^wchar_t, #c_vararg arg: ..any) -> int ---
|
|
|
- fwscanf :: proc(stream: ^FILE, format: ^wchar_t, #c_vararg arg: ..any) -> int ---
|
|
|
- swprintf :: proc(stream: ^FILE, n: size_t, format: ^wchar_t, #c_vararg arg: ..any) -> int ---
|
|
|
- swscanf :: proc(s, format: ^wchar_t, #c_vararg arg: ..any) -> int ---
|
|
|
- vfwprintf :: proc(stream: ^FILE, format: ^wchar_t, arg: va_list) -> int ---
|
|
|
- vfwscanf :: proc(stream: ^FILE, format: ^wchar_t, arg: va_list) -> int ---
|
|
|
- vswprintf :: proc(s: ^wchar_t, n: size_t, format: ^wchar_t, arg: va_list) -> int ---
|
|
|
- vswscanf :: proc(s, format: ^wchar_t, arg: va_list) -> int ---
|
|
|
- vwprintf :: proc(format: ^wchar_t, arg: va_list) -> int ---
|
|
|
- vwscanf :: proc(format: ^wchar_t, arg: va_list) -> int ---
|
|
|
- wprintf :: proc(format: ^wchar_t, #c_vararg arg: ..any) -> int ---
|
|
|
- wscanf :: proc(format: ^wchar_t, #c_vararg arg: ..any) -> int ---
|
|
|
+ fwprintf :: proc(stream: ^FILE, format: [^]wchar_t, #c_vararg arg: ..any) -> int ---
|
|
|
+ fwscanf :: proc(stream: ^FILE, format: [^]wchar_t, #c_vararg arg: ..any) -> int ---
|
|
|
+ swprintf :: proc(stream: ^FILE, n: size_t, format: [^]wchar_t, #c_vararg arg: ..any) -> int ---
|
|
|
+ swscanf :: proc(s, format: [^]wchar_t, #c_vararg arg: ..any) -> int ---
|
|
|
+ vfwprintf :: proc(stream: ^FILE, format: [^]wchar_t, arg: va_list) -> int ---
|
|
|
+ vfwscanf :: proc(stream: ^FILE, format: [^]wchar_t, arg: va_list) -> int ---
|
|
|
+ vswprintf :: proc(s: [^]wchar_t, n: size_t, format: [^]wchar_t, arg: va_list) -> int ---
|
|
|
+ vswscanf :: proc(s, format: [^]wchar_t, arg: va_list) -> int ---
|
|
|
+ vwprintf :: proc(format: [^]wchar_t, arg: va_list) -> int ---
|
|
|
+ vwscanf :: proc(format: [^]wchar_t, arg: va_list) -> int ---
|
|
|
+ wprintf :: proc(format: [^]wchar_t, #c_vararg arg: ..any) -> int ---
|
|
|
+ wscanf :: proc(format: [^]wchar_t, #c_vararg arg: ..any) -> int ---
|
|
|
|
|
|
// 7.29.3 Wide character input/output functions
|
|
|
fwgetc :: proc(stream: ^FILE) -> wint_t ---
|
|
|
- fgetws :: proc(s: ^wchar_t, n: int, stream: ^FILE) -> wchar_t ---
|
|
|
+ fgetws :: proc(s: [^]wchar_t, n: int, stream: ^FILE) -> wchar_t ---
|
|
|
fputwc :: proc(c: wchar_t, stream: ^FILE) -> wint_t ---
|
|
|
- fputws :: proc(s: ^wchar_t, stream: ^FILE) -> int ---
|
|
|
+ fputws :: proc(s: [^]wchar_t, stream: ^FILE) -> int ---
|
|
|
fwide :: proc(stream: ^FILE, mode: int) -> int ---
|
|
|
getwc :: proc(stream: ^FILE) -> wint_t ---
|
|
|
getwchar :: proc() -> wint_t ---
|
|
@@ -37,46 +37,46 @@ foreign libc {
|
|
|
ungetwc :: proc(c: wchar_t, stream: ^FILE) -> wint_t ---
|
|
|
|
|
|
// 7.29.4 General wide string utilities
|
|
|
- wcstod :: proc(nptr: ^wchar_t, endptr: ^^wchar_t) -> double ---
|
|
|
- wcstof :: proc(nptr: ^wchar_t, endptr: ^^wchar_t) -> float ---
|
|
|
- wcstol :: proc(nptr: ^wchar_t, endptr: ^^wchar_t, base: int) -> long ---
|
|
|
- wcstoll :: proc(nptr: ^wchar_t, endptr: ^^wchar_t, base: int) -> longlong ---
|
|
|
- wcstoul :: proc(nptr: ^wchar_t, endptr: ^^wchar_t, base: int) -> ulong ---
|
|
|
- wcstoull :: proc(nptr: ^wchar_t, endptr: ^^wchar_t, base: int) -> ulonglong ---
|
|
|
+ wcstod :: proc(nptr: [^]wchar_t, endptr: ^[^]wchar_t) -> double ---
|
|
|
+ wcstof :: proc(nptr: [^]wchar_t, endptr: ^[^]wchar_t) -> float ---
|
|
|
+ wcstol :: proc(nptr: [^]wchar_t, endptr: ^[^]wchar_t, base: int) -> long ---
|
|
|
+ wcstoll :: proc(nptr: [^]wchar_t, endptr: ^[^]wchar_t, base: int) -> longlong ---
|
|
|
+ wcstoul :: proc(nptr: [^]wchar_t, endptr: ^[^]wchar_t, base: int) -> ulong ---
|
|
|
+ wcstoull :: proc(nptr: [^]wchar_t, endptr: ^[^]wchar_t, base: int) -> ulonglong ---
|
|
|
|
|
|
// 7.29.4.2 Wide string copying functions
|
|
|
- wcscpy :: proc(s1, s2: ^wchar_t) -> ^wchar_t ---
|
|
|
- wcsncpy :: proc(s1, s2: ^wchar_t, n: size_t) -> ^wchar_t ---
|
|
|
- wmemcpy :: proc(s1, s2: ^wchar_t, n: size_t) -> ^wchar_t ---
|
|
|
- wmemmove :: proc(s1, s2: ^wchar_t, n: size_t) -> ^wchar_t ---
|
|
|
+ wcscpy :: proc(s1, s2: [^]wchar_t) -> [^]wchar_t ---
|
|
|
+ wcsncpy :: proc(s1, s2: [^]wchar_t, n: size_t) -> [^]wchar_t ---
|
|
|
+ wmemcpy :: proc(s1, s2: [^]wchar_t, n: size_t) -> [^]wchar_t ---
|
|
|
+ wmemmove :: proc(s1, s2: [^]wchar_t, n: size_t) -> [^]wchar_t ---
|
|
|
|
|
|
// 7.29.4.3 Wide string concatenation functions
|
|
|
- wcscat :: proc(s1, s2: ^wchar_t) -> ^wchar_t ---
|
|
|
- wcsncat :: proc(s1, s2: ^wchar_t, n: size_t) -> ^wchar_t ---
|
|
|
+ wcscat :: proc(s1, s2: [^]wchar_t) -> [^]wchar_t ---
|
|
|
+ wcsncat :: proc(s1, s2: [^]wchar_t, n: size_t) -> [^]wchar_t ---
|
|
|
|
|
|
// 7.29.4.4 Wide string comparison functions
|
|
|
- wcscmp :: proc(s1, s2: ^wchar_t) -> int ---
|
|
|
- wcscoll :: proc(s1, s2: ^wchar_t) -> int ---
|
|
|
- wcsncmp :: proc(s1, s2: ^wchar_t, n: size_t) -> int ---
|
|
|
- wcsxfrm :: proc(s1, s2: ^wchar_t, n: size_t) -> size_t ---
|
|
|
- wmemcmp :: proc(s1, s2: ^wchar_t, n: size_t) -> int ---
|
|
|
+ wcscmp :: proc(s1, s2: [^]wchar_t) -> int ---
|
|
|
+ wcscoll :: proc(s1, s2: [^]wchar_t) -> int ---
|
|
|
+ wcsncmp :: proc(s1, s2: [^]wchar_t, n: size_t) -> int ---
|
|
|
+ wcsxfrm :: proc(s1, s2: [^]wchar_t, n: size_t) -> size_t ---
|
|
|
+ wmemcmp :: proc(s1, s2: [^]wchar_t, n: size_t) -> int ---
|
|
|
|
|
|
// 7.29.4.5 Wide string search functions
|
|
|
- wcschr :: proc(s: ^wchar_t, c: wchar_t) -> ^wchar_t ---
|
|
|
- wcscspn :: proc(s1, s2: ^wchar_t) -> size_t ---
|
|
|
- wcspbrk :: proc(s1, s2: ^wchar_t) -> ^wchar_t ---
|
|
|
- wcsrchr :: proc(s: ^wchar_t, c: wchar_t) -> ^wchar_t ---
|
|
|
- wcsspn :: proc(s1, s2: ^wchar_t) -> size_t ---
|
|
|
- wcsstr :: proc(s1, s2: ^wchar_t) -> ^wchar_t ---
|
|
|
- wcstok :: proc(s1, s2: ^wchar_t, ptr: ^^wchar_t) -> ^wchar_t ---
|
|
|
- wmemchr :: proc(s: ^wchar_t, c: wchar_t, n: size_t) -> ^wchar_t ---
|
|
|
+ wcschr :: proc(s: [^]wchar_t, c: wchar_t) -> [^]wchar_t ---
|
|
|
+ wcscspn :: proc(s1, s2: [^]wchar_t) -> size_t ---
|
|
|
+ wcspbrk :: proc(s1, s2: [^]wchar_t) -> [^]wchar_t ---
|
|
|
+ wcsrchr :: proc(s: [^]wchar_t, c: wchar_t) -> [^]wchar_t ---
|
|
|
+ wcsspn :: proc(s1, s2: [^]wchar_t) -> size_t ---
|
|
|
+ wcsstr :: proc(s1, s2: [^]wchar_t) -> [^]wchar_t ---
|
|
|
+ wcstok :: proc(s1, s2: [^]wchar_t, ptr: ^[^]wchar_t) -> [^]wchar_t ---
|
|
|
+ wmemchr :: proc(s: [^]wchar_t, c: wchar_t, n: size_t) -> [^]wchar_t ---
|
|
|
|
|
|
// 7.29.4.6 Miscellaneous functions
|
|
|
- wcslen :: proc(s: ^wchar_t) -> size_t ---
|
|
|
- wmemset :: proc(s: ^wchar_t, c: wchar_t, n: size_t) -> ^wchar_t ---
|
|
|
+ wcslen :: proc(s: [^]wchar_t) -> size_t ---
|
|
|
+ wmemset :: proc(s: [^]wchar_t, c: wchar_t, n: size_t) -> [^]wchar_t ---
|
|
|
|
|
|
// 7.29.5 Wide character time conversion functions
|
|
|
- wcsftime :: proc(s: ^wchar_t, maxsize: size_t, format: ^wchar_t, timeptr: ^tm) -> size_t ---
|
|
|
+ wcsftime :: proc(s: [^]wchar_t, maxsize: size_t, format: [^]wchar_t, timeptr: ^tm) -> size_t ---
|
|
|
|
|
|
// 7.29.6.1 Single-byte/wide character conversion functions
|
|
|
btowc :: proc(c: int) -> wint_t ---
|
|
@@ -87,12 +87,12 @@ foreign libc {
|
|
|
|
|
|
// 7.29.6.3 Restartable multibyte/wide character conversion functions
|
|
|
mbrlen :: proc(s: cstring, n: size_t, ps: ^mbstate_t) -> size_t ---
|
|
|
- mbrtowc :: proc(pwc: ^wchar_t, s: cstring, n: size_t, ps: ^mbstate_t) -> size_t ---
|
|
|
+ mbrtowc :: proc(pwc: [^]wchar_t, s: cstring, n: size_t, ps: ^mbstate_t) -> size_t ---
|
|
|
wcrtomb :: proc(s: ^char, wc: wchar_t, ps: ^mbstate_t) -> size_t ---
|
|
|
|
|
|
// 7.29.6.4 Restartable multibyte/wide string conversion functions
|
|
|
- mbsrtowcs :: proc(dst: ^wchar_t, src: ^cstring, len: size_t, ps: ^mbstate_t) -> size_t ---
|
|
|
- wcsrtombs :: proc(dst: ^char, src: ^^wchar_t, len: size_t, ps: ^mbstate_t) -> size_t ---
|
|
|
+ mbsrtowcs :: proc(dst: [^]wchar_t, src: ^cstring, len: size_t, ps: ^mbstate_t) -> size_t ---
|
|
|
+ wcsrtombs :: proc(dst: ^char, src: ^[^]wchar_t, len: size_t, ps: ^mbstate_t) -> size_t ---
|
|
|
}
|
|
|
|
|
|
// Large enough and aligned enough for any wide-spread in-use libc.
|