phobos/std/c/wcharh.d
2008-06-24 02:03:03 +00:00

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);