summaryrefslogtreecommitdiffstats
path: root/private/crtlib/include/wchar.h
diff options
context:
space:
mode:
Diffstat (limited to 'private/crtlib/include/wchar.h')
-rw-r--r--private/crtlib/include/wchar.h300
1 files changed, 300 insertions, 0 deletions
diff --git a/private/crtlib/include/wchar.h b/private/crtlib/include/wchar.h
new file mode 100644
index 000000000..a80e2aaf7
--- /dev/null
+++ b/private/crtlib/include/wchar.h
@@ -0,0 +1,300 @@
+/***
+*wchar.h - declarations for wide character functions
+*
+* Copyright (c) 1992-1993, Microsoft Corporation. All rights reserved.
+*
+*Purpose:
+* This file contains the types, macros and function declarations for
+* all wide character-related functions. They may also be declared in
+* individual header files on a functional basis.
+* [ISO]
+*
+* Note: keep in sync with ctype.h, stdio.h, stdlib.h, string.h, time.h.
+*
+****/
+
+#ifndef _INC_WCHAR
+#define _INC_WCHAR
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+/*
+ * Conditional macro definition for function calling type and variable type
+ * qualifiers.
+ */
+#if ( (_MSC_VER >= 800) && (_M_IX86 >= 300) )
+
+/*
+ * Definitions for MS C8-32 (386/486) compiler
+ */
+#define _CRTAPI1 __cdecl
+#define _CRTAPI2 __cdecl
+
+#else
+
+/*
+ * Other compilers (e.g., MIPS)
+ */
+#define _CRTAPI1
+#define _CRTAPI2
+
+#endif
+
+
+#ifndef _SIZE_T_DEFINED
+typedef unsigned int size_t;
+#define _SIZE_T_DEFINED
+#endif
+
+#ifndef _WCHAR_T_DEFINED
+typedef unsigned short wchar_t;
+#define _WCHAR_T_DEFINED
+#endif
+
+#ifndef _WCTYPE_T_DEFINED
+typedef wchar_t wint_t;
+typedef wchar_t wctype_t;
+#define _WCTYPE_T_DEFINED
+#endif
+
+#ifndef _VA_LIST_DEFINED
+#ifdef _M_ALPHA
+typedef struct {
+ char *a0; /* pointer to first homed integer argument */
+ int offset; /* byte offset of next parameter */
+} va_list;
+#else
+typedef char * va_list;
+#endif
+#define _VA_LIST_DEFINED
+#endif
+
+#ifndef WEOF
+#define WEOF (wint_t)(0xFFFF)
+#endif
+
+#ifndef _FILE_DEFINED
+struct _iobuf {
+ char *_ptr;
+ int _cnt;
+ char *_base;
+ int _flag;
+ int _file;
+ int _charbuf;
+ int _bufsiz;
+ char *_tmpfname;
+ };
+typedef struct _iobuf FILE;
+#define _FILE_DEFINED
+#endif
+
+/* define NULL pointer value */
+
+#ifndef NULL
+#ifdef __cplusplus
+#define NULL 0
+#else
+#define NULL ((void *)0)
+#endif
+#endif
+
+/*
+ * This declaration allows the user access to the ctype look-up
+ * array _ctype defined in ctype.obj by simply including ctype.h
+ */
+
+#ifdef _DLL
+
+extern unsigned short * _ctype;
+
+#define _pctype (*_pctype_dll)
+extern unsigned short **_pctype_dll;
+
+#define _pwctype (*_pwctype_dll)
+extern unsigned short **_pwctype_dll;
+
+#else /* _DLL */
+
+
+extern unsigned short _ctype[];
+extern unsigned short *_pctype;
+extern wctype_t *_pwctype;
+
+#endif /* _DLL */
+
+/* set bit masks for the possible character types */
+
+#define _UPPER 0x1 /* upper case letter */
+#define _LOWER 0x2 /* lower case letter */
+#define _DIGIT 0x4 /* digit[0-9] */
+#define _SPACE 0x8 /* tab, carriage return, newline, */
+ /* vertical tab or form feed */
+#define _PUNCT 0x10 /* punctuation character */
+#define _CONTROL 0x20 /* control character */
+#define _BLANK 0x40 /* space char */
+#define _HEX 0x80 /* hexadecimal digit */
+
+#define _LEADBYTE 0x8000 /* multibyte leadbyte */
+#define _ALPHA (0x0100|_UPPER|_LOWER) /* alphabetic character */
+
+
+/* function prototypes */
+
+#ifndef _WCTYPE_DEFINED
+
+/* character classification function prototypes */
+/* also defined in ctype.h */
+
+int _CRTAPI1 iswalpha(wint_t);
+int _CRTAPI1 iswupper(wint_t);
+int _CRTAPI1 iswlower(wint_t);
+int _CRTAPI1 iswdigit(wint_t);
+int _CRTAPI1 iswxdigit(wint_t);
+int _CRTAPI1 iswspace(wint_t);
+int _CRTAPI1 iswpunct(wint_t);
+int _CRTAPI1 iswalnum(wint_t);
+int _CRTAPI1 iswprint(wint_t);
+int _CRTAPI1 iswgraph(wint_t);
+int _CRTAPI1 iswcntrl(wint_t);
+int _CRTAPI1 iswascii(wint_t);
+int _CRTAPI1 isleadbyte(int);
+
+wchar_t _CRTAPI1 towupper(wchar_t);
+wchar_t _CRTAPI1 towlower(wchar_t);
+
+int _CRTAPI1 iswctype(wint_t, wctype_t);
+
+int _CRTAPI1 _isctype(int, int);
+
+#define _WCTYPE_DEFINED
+#endif
+
+#define iswalpha(_c) ( iswctype(_c,_ALPHA) )
+#define iswupper(_c) ( iswctype(_c,_UPPER) )
+#define iswlower(_c) ( iswctype(_c,_LOWER) )
+#define iswdigit(_c) ( iswctype(_c,_DIGIT) )
+#define iswxdigit(_c) ( iswctype(_c,_HEX) )
+#define iswspace(_c) ( iswctype(_c,_SPACE) )
+#define iswpunct(_c) ( iswctype(_c,_PUNCT) )
+#define iswalnum(_c) ( iswctype(_c,_ALPHA|_DIGIT) )
+#define iswprint(_c) ( iswctype(_c,_BLANK|_PUNCT|_ALPHA|_DIGIT) )
+#define iswgraph(_c) ( iswctype(_c,_PUNCT|_ALPHA|_DIGIT) )
+#define iswcntrl(_c) ( iswctype(_c,_CONTROL) )
+#define iswascii(_c) ( (unsigned)(_c) < 0x80 )
+
+/* note: MS-specific routine, may evaluate its arguments more than once */
+#define isleadbyte(_c) ((_c) < 256 ? _pctype[_c] & _LEADBYTE : 0)
+
+
+#ifndef _WSTDIO_DEFINED
+
+wint_t _CRTAPI1 fgetwc(FILE *);
+wint_t _CRTAPI1 _fgetwchar(void);
+wint_t _CRTAPI1 fputwc(wint_t, FILE *);
+wint_t _CRTAPI1 _fputwchar(wint_t);
+wint_t _CRTAPI1 getwc(FILE *);
+wint_t _CRTAPI1 getwchar(void);
+wint_t _CRTAPI1 putwc(wint_t, FILE *);
+wint_t _CRTAPI1 putwchar(wint_t);
+wint_t _CRTAPI1 ungetwc(wint_t, FILE *);
+
+int _CRTAPI2 fwprintf(FILE *, const wchar_t *, ...);
+int _CRTAPI2 wprintf(const wchar_t *, ...);
+int _CRTAPI2 _snwprintf(wchar_t *, size_t, const wchar_t *, ...);
+int _CRTAPI2 swprintf(wchar_t *, const wchar_t *, ...);
+int _CRTAPI1 vfwprintf(FILE *, const wchar_t *, va_list);
+int _CRTAPI1 vwprintf(const wchar_t *, va_list);
+int _CRTAPI1 _vsnwprintf(wchar_t *, size_t, const wchar_t *, va_list);
+int _CRTAPI1 vswprintf(wchar_t *, const wchar_t *, va_list);
+int _CRTAPI2 fwscanf(FILE *, const wchar_t *, ...);
+int _CRTAPI2 swscanf(const wchar_t *, const wchar_t *, ...);
+int _CRTAPI2 wscanf(const wchar_t *, ...);
+
+#define getwchar() fgetwc(stdin)
+#define putwchar(_c) fputwc((_c),stdout)
+#define getwc(_stm) fgetwc(_stm)
+#define putwc(_c,_stm) fputwc(_c,_stm)
+
+
+#define _WSTDIO_DEFINED
+#endif
+
+
+#ifndef _WSTDLIB_DEFINED
+/* also defined in stdlib.h */
+double _CRTAPI1 wcstod(const wchar_t *, wchar_t **);
+long _CRTAPI1 wcstol(const wchar_t *, wchar_t **, int);
+unsigned long _CRTAPI1 wcstoul(const wchar_t *, wchar_t **, int);
+wchar_t * _CRTAPI1 _itow (int val, wchar_t *buf, int radix);
+wchar_t * _CRTAPI1 _ltow (long val, wchar_t *buf, int radix);
+wchar_t * _CRTAPI1 _ultow (unsigned long val, wchar_t *buf, int radix);
+long _CRTAPI1 _wtol(const wchar_t *nptr);
+int _CRTAPI1 _wtoi(const wchar_t *nptr);
+#define _WSTDLIB_DEFINED
+#endif
+
+
+#ifndef _WSTRING_DEFINED
+wchar_t * _CRTAPI1 wcscat(wchar_t *, const wchar_t *);
+wchar_t * _CRTAPI1 wcschr(const wchar_t *, wchar_t);
+int _CRTAPI1 wcscmp(const wchar_t *, const wchar_t *);
+wchar_t * _CRTAPI1 wcscpy(wchar_t *, const wchar_t *);
+size_t _CRTAPI1 wcscspn(const wchar_t *, const wchar_t *);
+size_t _CRTAPI1 wcslen(const wchar_t *);
+wchar_t * _CRTAPI1 wcsncat(wchar_t *, const wchar_t *, size_t);
+int _CRTAPI1 wcsncmp(const wchar_t *, const wchar_t *, size_t);
+wchar_t * _CRTAPI1 wcsncpy(wchar_t *, const wchar_t *, size_t);
+wchar_t * _CRTAPI1 wcspbrk(const wchar_t *, const wchar_t *);
+wchar_t * _CRTAPI1 wcsrchr(const wchar_t *, wchar_t);
+size_t _CRTAPI1 wcsspn(const wchar_t *, const wchar_t *);
+wchar_t * _CRTAPI1 wcsstr(const wchar_t *, const wchar_t *);
+wchar_t * _CRTAPI1 wcstok(wchar_t *, const wchar_t *);
+
+wchar_t * _CRTAPI1 _wcsdup(const wchar_t *);
+int _CRTAPI1 _wcsicmp(const wchar_t *, const wchar_t *);
+int _CRTAPI1 _wcsnicmp(const wchar_t *, const wchar_t *, size_t);
+wchar_t * _CRTAPI1 _wcsnset(wchar_t *, wchar_t, size_t);
+wchar_t * _CRTAPI1 _wcsrev(wchar_t *);
+wchar_t * _CRTAPI1 _wcsset(wchar_t *, wchar_t);
+
+wchar_t * _CRTAPI1 _wcslwr(wchar_t *);
+wchar_t * _CRTAPI1 _wcsupr(wchar_t *);
+size_t _CRTAPI1 wcsxfrm(wchar_t *, const wchar_t *, size_t);
+int _CRTAPI1 wcscoll(const wchar_t *, const wchar_t *);
+int _CRTAPI1 _wcsicoll(const wchar_t *, const wchar_t *);
+
+/* old names */
+#define wcswcs wcsstr
+
+#if !__STDC__
+/* Non-ANSI names for compatibility */
+#define wcsdup _wcsdup
+#define wcsicmp _wcsicmp
+#define wcsnicmp _wcsnicmp
+#define wcsnset _wcsnset
+#define wcsrev _wcsrev
+#define wcsset _wcsset
+#define wcslwr _wcslwr
+#define wcsupr _wcsupr
+#define wcsicoll _wcsicoll
+#endif
+
+#define _WSTRING_DEFINED
+#endif
+
+
+#ifndef _WTIME_DEFINED
+size_t _CRTAPI1 wcsftime(wchar_t *, size_t, const char *, const struct tm *);
+#define _WTIME_DEFINED
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _INC_WCHAR */