These macros might not be defined, in which case this usage would have generated warnings had they not been in system headers.
137 lines
5.1 KiB
C
137 lines
5.1 KiB
C
/*******************************************************************************
|
|
|
|
Copyright(C) Jonas 'Sortie' Termansen 2011, 2012, 2013.
|
|
|
|
This file is part of the Sortix C Library.
|
|
|
|
The Sortix C Library is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU Lesser General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or (at your
|
|
option) any later version.
|
|
|
|
The Sortix C Library is distributed in the hope that it will be useful, but
|
|
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
|
License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public License
|
|
along with the Sortix C Library. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
wchar.h
|
|
Wide character support.
|
|
|
|
*******************************************************************************/
|
|
|
|
#ifndef INCLUDE_WCHAR_H
|
|
#define INCLUDE_WCHAR_H
|
|
|
|
#include <sys/cdefs.h>
|
|
|
|
#include <sys/__/types.h>
|
|
|
|
#if defined(__is_sortix_libc)
|
|
#include <FILE.h>
|
|
#endif
|
|
|
|
__BEGIN_DECLS
|
|
|
|
@include(size_t.h)
|
|
@include(off_t.h)
|
|
@include(FILE.h)
|
|
@include(locale_t.h)
|
|
@include(va_list.h)
|
|
@include(wchar_t.h)
|
|
@include(wint_t.h)
|
|
@include(WCHAR_MAX.h)
|
|
@include(WCHAR_MIN.h)
|
|
@include(WEOF.h)
|
|
@include(NULL.h)
|
|
|
|
#ifndef __mbstate_t_defined
|
|
/* Conversion state information. */
|
|
typedef struct
|
|
{
|
|
int __count;
|
|
union
|
|
{
|
|
wint_t __wch;
|
|
char __wchb[4];
|
|
} __value; /* Value so far. */
|
|
} mbstate_t;
|
|
#define __mbstate_t_defined 1
|
|
#endif
|
|
|
|
struct tm;
|
|
|
|
size_t mbsrtowcs(wchar_t* __restrict, const char** __restrict, size_t, mbstate_t* __restrict);
|
|
size_t wcrtomb(char* __restrict, wchar_t, mbstate_t* __restrict);
|
|
size_t mbrlen(const char* __restrict, size_t, mbstate_t* __restrict);
|
|
size_t mbrtowc(wchar_t* __restrict, const char* __restrict, size_t, mbstate_t* __restrict);
|
|
wchar_t* wcscat(wchar_t* __restrict, const wchar_t* __restrict);
|
|
wchar_t* wcschr(const wchar_t*, wchar_t);
|
|
wchar_t* wcschrnul(const wchar_t*, wchar_t);
|
|
int wcscmp(const wchar_t*, const wchar_t*);
|
|
int wcscoll(const wchar_t*, const wchar_t*);
|
|
wchar_t* wcscpy(wchar_t* __restrict, const wchar_t* __restrict);
|
|
size_t wcscspn(const wchar_t*, const wchar_t*);
|
|
size_t wcslen(const wchar_t*);
|
|
wchar_t* wcsncat(wchar_t* __restrict, const wchar_t* __restrict, size_t);
|
|
int wcsncmp(const wchar_t*, const wchar_t*, size_t);
|
|
wchar_t* wcsncpy(wchar_t* __restrict, const wchar_t* __restrict, size_t);
|
|
wchar_t* wcspbrk(const wchar_t*, const wchar_t*);
|
|
wchar_t* wcsrchr(const wchar_t*, wchar_t);
|
|
size_t wcsrtombs(char* __restrict, const wchar_t** __restrict, size_t, mbstate_t* __restrict);
|
|
size_t wcsspn(const wchar_t*, const wchar_t*);
|
|
wchar_t* wcsstr(const wchar_t* __restrict, const wchar_t* __restrict);
|
|
wchar_t* wcstok(wchar_t* __restrict, const wchar_t* __restrict, wchar_t** __restrict);
|
|
long long wcstoll(const wchar_t* __restrict, wchar_t** __restrict, int);
|
|
long wcstol(const wchar_t* __restrict, wchar_t** __restrict, int);
|
|
unsigned long long wcstoull(const wchar_t* __restrict, wchar_t** __restrict, int);
|
|
unsigned long wcstoul(const wchar_t* __restrict, wchar_t** __restrict, int);
|
|
size_t wcsxfrm(wchar_t* __restrict, const wchar_t* __restrict, size_t);
|
|
wchar_t* wmemchr(const wchar_t*, wchar_t, size_t);
|
|
int wmemcmp(const wchar_t*, const wchar_t*, size_t);
|
|
wchar_t* wmemcpy(wchar_t* __restrict, const wchar_t* __restrict, size_t);
|
|
wchar_t* wmemmove(wchar_t*, const wchar_t*, size_t);
|
|
wchar_t* wmemset(wchar_t*, wchar_t, size_t);
|
|
|
|
/* TODO: These are not implemented in sortix libc yet. */
|
|
#if 0
|
|
double wcstod(const wchar_t* __restrict, wchar_t** __restrict);
|
|
FILE* open_wmemstream(wchar_t** bufp, size_t* sizep);
|
|
float wcstof(const wchar_t* __restrict, wchar_t** __restrict);
|
|
int fputws(const wchar_t* __restrict, FILE* __restrict);
|
|
int fwide(FILE*, int);
|
|
int fwprintf(FILE* __restrict, const wchar_t* __restrict, ...);
|
|
int fwscanf(FILE* __restrict, const wchar_t* __restrict, ...);
|
|
int mbsinit(const mbstate_t*);
|
|
int swprintf(wchar_t* __restrict, size_t, const wchar_t* __restrict, ...);
|
|
int swscanf(const wchar_t* __restrict, const wchar_t* __restrict, ...);
|
|
int vfwprintf(FILE* __restrict, const wchar_t* __restrict, va_list);
|
|
int vfwscanf(FILE* __restrict, const wchar_t* __restrict, va_list);
|
|
int vswprintf(wchar_t* __restrict, size_t, const wchar_t* __restrict, va_list);
|
|
int vswscanf(const wchar_t* __restrict, const wchar_t* __restrict, va_list);
|
|
int vwprintf(const wchar_t* __restrict, va_list);
|
|
int vwscanf(const wchar_t* __restrict, va_list);
|
|
int wcswidth(const wchar_t*, size_t);
|
|
int wctob(wint_t);
|
|
int wcwidth(wchar_t);
|
|
int wprintf(const wchar_t* __restrict, ...);
|
|
int wscanf(const wchar_t* __restrict, ...);
|
|
long double wcstold(const wchar_t* __restrict, wchar_t** __restrict);
|
|
size_t wcsftime(wchar_t* __restrict, size_t, const wchar_t* __restrict, const struct tm* __restrict);
|
|
wchar_t* fgetws(wchar_t* __restrict, int, FILE* __restrict);
|
|
wint_t btowc(int);
|
|
wint_t fgetwc(FILE*);
|
|
wint_t fputwc(wchar_t, FILE*);
|
|
wint_t getwc(FILE*);
|
|
wint_t getwchar(void);
|
|
wint_t putwchar(wchar_t);
|
|
wint_t putwc(wchar_t, FILE*);
|
|
wint_t ungetwc(wint_t, FILE*);
|
|
#endif
|
|
|
|
__END_DECLS
|
|
|
|
#endif
|