mirror of
https://github.com/dlang/phobos.git
synced 2025-05-06 11:07:39 +03:00
106 lines
3.5 KiB
D
106 lines
3.5 KiB
D
|
|
/**
|
|
* C's <wchar.h>
|
|
* Authors: Walter Bright, Digital Mars, www.digitalmars.com
|
|
* License: Public Domain
|
|
* Macros:
|
|
* WIKI=Phobos/StdCWchar
|
|
*/
|
|
|
|
module std.c.wcharh;
|
|
|
|
private import std.c.stdio;
|
|
private import std.c.stddef;
|
|
private import std.c.stdarg;
|
|
private import std.c.time;
|
|
|
|
extern (C):
|
|
|
|
version (Windows)
|
|
{
|
|
alias int mbstate_t;
|
|
alias wchar_t wint_t;
|
|
const wint_t WEOF = 0xFFFF;
|
|
}
|
|
else version (linux)
|
|
{
|
|
struct mbstate_t
|
|
{
|
|
int __count;
|
|
union U
|
|
{
|
|
wint_t __wch;
|
|
ubyte[4] __wchb;
|
|
}
|
|
U __value;
|
|
}
|
|
alias uint wint_t;
|
|
const wint_t WEOF = 0xFFFFFFFFu;
|
|
}
|
|
else
|
|
{
|
|
static assert(0);
|
|
}
|
|
|
|
const wchar_t WCHAR_MAX = wchar_t.max;
|
|
const wchar_t WCHAR_MIN = wchar_t.min;
|
|
|
|
int fwprintf(FILE* stream, in wchar_t* format, ...);
|
|
int fwscanf(FILE* stream, in wchar_t* format, ...);
|
|
int swprintf(wchar_t* s, size_t n, in wchar_t* format, ...);
|
|
int swscanf(wchar_t* s, in wchar_t* format, ...);
|
|
int vfwprintf(FILE* stream, in wchar_t* format, va_list arg);
|
|
int vfwscanf(FILE* stream, in wchar_t* format, va_list arg);
|
|
int vswprintf(wchar_t* s, size_t n, in wchar_t* format, va_list arg);
|
|
int vswscanf(wchar_t* s, in wchar_t* format, va_list arg);
|
|
int vwprintf(in wchar_t* format, va_list arg);
|
|
int vwscanf(in wchar_t* format, va_list arg);
|
|
int wprintf(in wchar_t* format, ...);
|
|
int wscanf(in wchar_t* format, ...);
|
|
wint_t fgetwc(FILE *stream);
|
|
wchar_t *fgetws(wchar_t* s, int n, FILE* stream);
|
|
wint_t fputwc(wchar_t c, FILE *stream);
|
|
int fputws(in wchar_t* s, FILE* stream);
|
|
int fwide(FILE *stream, int mode);
|
|
wint_t getwc(FILE *stream);
|
|
wint_t getwchar();
|
|
wint_t putwc(wchar_t c, FILE *stream);
|
|
wint_t putwchar(wchar_t c);
|
|
wint_t ungetwc(wint_t c, FILE *stream);
|
|
double wcstod(wchar_t* nptr, wchar_t** endptr);
|
|
float wcstof(wchar_t* nptr, wchar_t** endptr);
|
|
real wcstold(wchar_t* nptr, wchar_t** endptr);
|
|
int wcstol(wchar_t* nptr, wchar_t** endptr, int base);
|
|
long wcstoll(wchar_t* nptr, wchar_t** endptr, int base);
|
|
uint wcstoul(wchar_t* nptr, wchar_t** endptr, int base);
|
|
ulong wcstoull(wchar_t* nptr, wchar_t** endptr, int base);
|
|
wchar_t *wcscpy(wchar_t* s1, in wchar_t* s2);
|
|
wchar_t *wcsncpy(wchar_t* s1, in wchar_t* s2, size_t n);
|
|
wchar_t *wcscat(wchar_t* s1, in wchar_t* s2);
|
|
wchar_t *wcsncat(wchar_t* s1, in wchar_t* s2, size_t n);
|
|
int wcscmp(in wchar_t *s1, in wchar_t *s2);
|
|
int wcscoll(in wchar_t *s1, in wchar_t *s2);
|
|
int wcsncmp(in wchar_t *s1, in wchar_t *s2, size_t n);
|
|
size_t wcsxfrm(wchar_t* s1, in wchar_t* s2, size_t n);
|
|
wchar_t *wcschr(wchar_t *s, wchar_t c);
|
|
size_t wcscspn(in wchar_t *s1, in wchar_t *s2);
|
|
size_t wcslen(in wchar_t *s);
|
|
wchar_t *wcspbrk(wchar_t *s1, in wchar_t *s2);
|
|
wchar_t *wcsrchr(wchar_t *s, wchar_t c);
|
|
size_t wcsspn(in wchar_t *s1, in wchar_t *s2);
|
|
wchar_t *wcsstr(wchar_t *s1, in wchar_t *s2);
|
|
wchar_t *wcstok(wchar_t* s1, in wchar_t* s2, wchar_t** ptr);
|
|
wchar_t *wmemchr(wchar_t *s, wchar_t c, size_t n);
|
|
int wmemcmp(in wchar_t* s1, in wchar_t* s2, size_t n);
|
|
wchar_t *wmemcpy(wchar_t* s1, in wchar_t* s2, size_t n);
|
|
wchar_t *wmemmove(wchar_t *s1, in wchar_t *s2, size_t n);
|
|
wchar_t *wmemset(wchar_t *s, wchar_t c, size_t n);
|
|
size_t wcsftime(wchar_t* s, size_t maxsize, in wchar_t* format, in tm* timeptr);
|
|
wint_t btowc(int c);
|
|
int wctob(wint_t c);
|
|
int mbsinit(in mbstate_t *ps);
|
|
size_t mbrlen(in char* s, size_t n, mbstate_t* ps);
|
|
size_t mbrtowc(wchar_t* pwc, in char* s, size_t n, mbstate_t* ps);
|
|
size_t wcrtomb(char* s, wchar_t wc, mbstate_t* ps);
|
|
size_t mbsrtowcs(wchar_t* dst, const (char*)* src, size_t len, mbstate_t* ps);
|
|
size_t wcsrtombs(char* dst, wchar_t** src, size_t len, mbstate_t* ps);
|