This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/WATCOM/h/tchar.h

1063 lines
29 KiB
C
Raw Permalink Normal View History

/*
* tchar.h Generic International Text Function Macros
*
* =========================================================================
*
* Open Watcom Project
*
* Copyright (c) 2002-2010 Open Watcom Contributors. All Rights Reserved.
* Portions Copyright (c) 1983-2002 Sybase, Inc. All Rights Reserved.
*
* This file is automatically generated. Do not edit directly.
*
* =========================================================================
*/
#ifndef _TCHAR_H_INCLUDED
#define _TCHAR_H_INCLUDED
#ifndef _ENABLE_AUTODEPEND
#pragma read_only_file;
#endif
#ifndef _COMDEF_H_INCLUDED
#include <_comdef.h>
#endif
#ifndef _STRING_H_INCLUDED
#include <string.h>
#endif
#ifndef _TIME_H_INCLUDED
#include <time.h>
#endif
#if defined(_UNICODE) || defined(__UNICODE__)
#ifndef _WCHAR_H_INCLUDED
#include <wchar.h>
#endif
#elif defined(_MBCS)
#ifndef _MBSTRING_H_INCLUDED
#include <mbstring.h>
#endif
#endif
#ifdef __cplusplus
extern "C" {
#endif
#ifndef NULL
#ifdef __cplusplus
#if !defined(_M_I86) || defined(__SMALL__) || defined(__MEDIUM__)
#define NULL 0
#else
#define NULL 0L
#endif
#else
#define NULL ((void *)0)
#endif
#endif
#if defined(_UNICODE) || defined(__UNICODE__)
// **************************** UNICODE **************************************
#ifndef __TCHAR_DEFINED
typedef wchar_t _TCHAR;
typedef wchar_t _TSCHAR;
typedef wchar_t _TUCHAR;
typedef wchar_t _TXCHAR;
typedef wchar_t _TINT;
#define __TCHAR_DEFINED
#endif
#ifndef _TCHAR_DEFINED
#if !defined(NO_EXT_KEYS) /* extensions enabled */
typedef wchar_t TCHAR;
#endif /* extensions enabled */
#define _TCHAR_DEFINED
#endif
#define _TEOF WEOF
#define __T(x) L ## x
/* Program */
#define _tmain wmain
#define _tWinMain wWinMain
#define _tenviron _wenviron
#define __targc __wargc
#define __targv __wargv
/* Formatted i/o */
#define _tprintf wprintf
#define _ftprintf fwprintf
#define _sntprintf _snwprintf
#define _vtprintf vwprintf
#define _vftprintf vfwprintf
#define _tscanf wscanf
#define _ftscanf fwscanf
#define _stscanf swscanf
#if defined(__cplusplus) && defined(__INLINE_FUNCTIONS__)
inline int _vstprintf( wchar_t *__p1, const wchar_t *__p2, __va_list __p3 ) {
return( vswprintf( __p1, 32767, __p2, __p3 ) );
}
#else
#define _vstprintf(__p1,__p2,__p3) vswprintf((__p1),32767,(__p2),(__p3))
#endif
_WCRTLINK extern int _stprintf(wchar_t *, const wchar_t *, ...);
/* Unformatted i/o */
#define _fgettc fgetwc
#define _fgettchar _fgetwchar
#define _fgetts fgetws
#define _fputtc fputwc
#define _fputtchar _fputwchar
#define _fputts fputws
#define _gettc getwc
#define _gettchar getwchar
#define _getts _getws
#define _puttc putwc
#define _puttchar putwchar
#define _putts _putws
#define _ungettc ungetwc
/* String conversion functions */
#define _tcstod wcstod
#define _tcstol wcstol
#define _tcstoul wcstoul
#define _itot _itow
#define _ltot _ltow
#define _ultot _ultow
#define _ttoi _wtoi
#define _ttol _wtol
/* String functions */
#define _tcscat wcscat
#define _tcschr wcschr
#define _tcscpy wcscpy
#define _tcscspn wcscspn
#define _tcslen wcslen
#define _tcsncat wcsncat
#define _tcsncpy wcsncpy
#define _tcspbrk wcspbrk
#define _tcsrchr wcsrchr
#define _tcsspn wcsspn
#define _tcsstr wcsstr
#if defined(__cplusplus) && defined(__INLINE_FUNCTIONS__)
inline wchar_t *_tcstok( wchar_t *__p1, const wchar_t *__p2 ) {
return( wcstok( __p1, __p2, NULL ) );
}
#else
#define _tcstok(__p1,__p2) wcstok((__p1),(__p2),NULL)
#endif
#define _tcsdup _wcsdup
#define _tcsnset _wcsnset
#define _tcsrev _wcsrev
#define _tcsset _wcsset
#define _tcscmp wcscmp
#define _tcsicmp _wcsicmp
#define _tcsnccmp wcsncmp
#define _tcsncmp wcsncmp
#define _tcsncicmp _wcsnicmp
#define _tcsnicmp _wcsnicmp
#define _tcscoll wcscoll
#define _tcsicoll _wcsicoll
#define _tcsnccoll _wcsncoll
#define _tcsncoll _wcsncoll
#define _tcsncicoll _wcsnicoll
#define _tcsnicoll _wcsnicoll
/* Execute functions */
#define _texecl _wexecl
#define _texecle _wexecle
#define _texeclp _wexeclp
#define _texeclpe _wexeclpe
#define _texecv _wexecv
#define _texecve _wexecve
#define _texecvp _wexecvp
#define _texecvpe _wexecvpe
#define _tspawnl _wspawnl
#define _tspawnle _wspawnle
#define _tspawnlp _wspawnlp
#define _tspawnlpe _wspawnlpe
#define _tspawnv _wspawnv
#define _tspawnve _wspawnve
#define _tspawnvp _wspawnvp
#define _tspawnvpe _wspawnvpe
#define _tsystem _wsystem
/* Time functions */
#define _tasctime _wasctime
#define _tctime _wctime
#define _tstrdate _wstrdate
#define _tstrtime _wstrtime
#define _tutime _wutime
#define _tcsftime wcsftime
/* Directory functions */
#define _tchdir _wchdir
#define _tclosedir _wclosedir
#define _tgetcwd _wgetcwd
#define _tgetdcwd _wgetdcwd
#define _tmkdir _wmkdir
#define _topendir _wopendir
#define _treaddir _wreaddir
#define _trewinddir _wrewinddir
#define _trmdir _wrmdir
/* Directory struct */
#define _tdirent _wdirent
/* Environment/Path functions */
#define _tfullpath _wfullpath
#define _tgetenv _wgetenv
#define _tmakepath _wmakepath
#define _tputenv _wputenv
#define _tsearchenv _wsearchenv
#define _tsplitpath _wsplitpath
/* Stdio functions */
#define _tfdopen _wfdopen
#define _tfsopen _wfsopen
#define _tfopen _wfopen
#define _tfreopen _wfreopen
#define _tperror _wperror
#define _ttmpnam _wtmpnam
/* Io functions */
#define _taccess _waccess
#define _tchmod _wchmod
#define _tcreat _wcreat
#define _tfindfirst _wfindfirst
#define _tfindfirsti64 _wfindfirsti64
#define _tfindnext _wfindnext
#define _tfindnexti64 _wfindnexti64
#define _topen _wopen
#define _tremove _wremove
#define _trename _wrename
#define _tsopen _wsopen
#define _tunlink _wunlink
#define _tfinddata_t _wfinddata_t
#define _tfinddatai64_t _wfinddatai64_t
/* Stat functions */
#define _tstat _wstat
#define _tstati64 _wstati64
#define _tfstat _wfstat
#define _tfstati64 _wfstati64
/* Setlocale functions */
#define _tsetlocale _wsetlocale
/* Redundant "logical-character" mappings */
#define _tcsclen wcslen
#define _tcsnccat wcsncat
#define _tcsnccpy wcsncpy
#define _tcsncset _wcsnset
#define _tcsdec _wcsdec
#define _tcsinc _wcsinc
#define _tcsnbcnt _wcsncnt
#define _tcsnccnt _wcsncnt
#define _tcsnextc _wcsnextc
#define _tcsninc _wcsninc
#define _tcsspnp _wcsspnp
#define _tcslwr _wcslwr
#define _tcsupr _wcsupr
#define _tcsxfrm wcsxfrm
#if defined(__cplusplus) && defined(__INLINE_FUNCTIONS__)
inline size_t _tclen( const wchar_t * ) {
return( 1 );
}
inline void _tccpy( wchar_t *__p1, const wchar_t *__p2 ) {
*__p1 = (wchar_t)*__p2;
}
inline int _tccmp( const wchar_t *__p1, const wchar_t *__p2 ) {
return( (int) ((*__p1)-(*__p2)) );
}
#else
#define _tclen(__p) (1)
#define _tccpy(__p1,__p2) ((*(__p1) = *(__p2)))
#define _tccmp(__p1,__p2) ((*(__p1))-(*(__p2)))
#endif
/* ctype functions */
#define _istalnum iswalnum
#define _istalpha iswalpha
#define _istascii iswascii
#define _istcntrl iswcntrl
#define _istdigit iswdigit
#define _istgraph iswgraph
#define _istlower iswlower
#define _istprint iswprint
#define _istpunct iswpunct
#define _istspace iswspace
#define _istupper iswupper
#define _istxdigit iswxdigit
#define _totupper towupper
#define _totlower towlower
#define _istlegal(_c) (1)
#define _istlead(_c) (0)
#define _istleadbyte(_c) (0)
#if defined(__cplusplus) && defined(__INLINE_FUNCTIONS__)
inline wchar_t *_wcsdec( const wchar_t *, const wchar_t *__p ) {
return( (wchar_t *)(__p-1) );
}
inline wchar_t *_wcsinc( const wchar_t *__p ) {
return( (wchar_t *)(__p+1) );
}
inline unsigned int _wcsnextc( const wchar_t *__p ) {
return( (unsigned int)*__p );
}
inline wchar_t *_wcsninc( const wchar_t *__p, size_t __l ) {
return( (wchar_t *)(__p+__l) );
}
inline size_t _wcsncnt( const wchar_t *__p, size_t __l ) {
size_t __i;
__i = wcslen(__p);
return( (__i>__l) ? __l : __i );
}
inline wchar_t *_wcsspnp( const wchar_t *__p1, const wchar_t *__p2 ) {
return( (*(__p1 += wcsspn(__p1,__p2))!='\0') ? (wchar_t*)__p1 : NULL );
}
#else
#define _wcsdec(__p1, __p2) ((__p2)-1)
#define _wcsinc(__p) ((__p)+1)
#define _wcsnextc(__p) ((unsigned int) *(__p))
#define _wcsninc(__p, __l) (((__p)+(__l)))
#define _wcsncnt(__p, __l) ((wcslen(__p)>__l) ? __l : wcslen(__p))
#define _wcsspnp(__p1, __p2) ((*((__p1)+wcsspn(__p1,__p2))) ? \
((__p1)+wcsspn(__p1,__p2)) : NULL)
#endif
#ifdef __cplusplus
namespace std {
#endif
_WMRTLINK extern double wcstod( const wchar_t *__nptr, wchar_t **__endptr );
_WCRTLINK extern long int wcstol( const wchar_t *, wchar_t **, int );
_WCRTLINK extern unsigned long int wcstoul( const wchar_t *, wchar_t **, int );
#ifdef __cplusplus
}
using std::wcstod;
using std::wcstol;
using std::wcstoul;
#endif
_WCRTLINK extern int _wcsicmp( const wchar_t *, const wchar_t * );
_WCRTLINK extern int _wcsnicmp( const wchar_t *, const wchar_t *, size_t );
_WCRTLINK extern wchar_t *_wcsdup( const wchar_t * );
_WCRTLINK extern wchar_t *_wcslwr( wchar_t * );
_WCRTLINK extern wchar_t *_wcsupr( wchar_t * );
_WCRTLINK extern wchar_t *_wcsset( wchar_t *, wchar_t );
_WCRTLINK extern wchar_t *_wcsnset( wchar_t *, int, size_t );
_WCRTLINK extern wchar_t *_wcsrev( wchar_t * );
#else
// **************************** SBCS and MBCS ********************************
#define _TEOF EOF
#define __T(x) x
/* Program */
#define _tmain main
#define _tWinMain WinMain
#define _tenviron environ
#define __targc __argc
#define __targv __argv
/* Formatted i/o */
#define _tprintf printf
#define _ftprintf fprintf
#define _stprintf sprintf
#define _sntprintf snprintf
#define _vtprintf vprintf
#define _vftprintf vfprintf
#define _vstprintf vsprintf
#define _tscanf scanf
#define _ftscanf fscanf
#define _stscanf sscanf
/* Unformatted i/o */
#define _fgettc fgetc
#define _fgettchar _fgetchar
#define _fgetts fgets
#define _fputtc fputc
#define _fputtchar _fputchar
#define _fputts fputs
#define _gettc getc
#define _gettchar getchar
#define _getts gets
#define _puttc putc
#define _puttchar putchar
#define _putts puts
#define _ungettc ungetc
/* String conversion functions */
#define _tcstod strtod
#define _tcstol strtol
#define _tcstoul strtoul
#define _itot itoa
#define _ltot ltoa
#define _ultot ultoa
#define _ttoi atoi
#define _ttol atol
/* String functions */
#define _tcscat strcat
#define _tcscpy strcpy
#define _tcslen strlen
#define _tcsxfrm strxfrm
#define _tcsdup strdup
/* Execute functions */
#define _texecl execl
#define _texecle execle
#define _texeclp execlp
#define _texeclpe execlpe
#define _texecv execv
#define _texecve execve
#define _texecvp execvp
#define _texecvpe execvpe
#define _tspawnl spawnl
#define _tspawnle spawnle
#define _tspawnlp spawnlp
#define _tspawnlpe spawnlpe
#define _tspawnv spawnv
#define _tspawnve spawnve
#define _tspawnvp spawnvp
#define _tspawnvpe spawnvpe
#define _tsystem system
/* Time functions */
#define _tasctime asctime
#define _tctime ctime
#define _tstrdate _strdate
#define _tstrtime strtime
#define _tutime utime
#define _tcsftime strftime
/* Directory functions */
#define _tchdir chdir
#define _tclosedir closedir
#define _tgetcwd getcwd
#define _tgetdcwd getdcwd
#define _tmkdir mkdir
#define _topendir opendir
#define _treaddir readdir
#define _trewinddir rewinddir
#define _trmdir rmdir
/* Directory struct */
#define _tdirent dirent
/* Environment/Path functions */
#define _tfullpath _fullpath
#define _tgetenv getenv
#define _tmakepath _makepath
#define _tputenv putenv
#define _tsearchenv searchenv
#define _tsplitpath _splitpath
/* Stdio functions */
#define _tfdopen fdopen
#define _tfsopen _fsopen
#define _tfopen fopen
#define _tfreopen freopen
#define _tperror perror
#define _ttmpnam tmpnam
/* Io functions */
#define _taccess access
#define _tchmod chmod
#define _tcreat creat
#define _tfindfirst _findfirst
#define _tfindfirsti64 _findfirsti64
#define _tfindnext _findnext
#define _tfindnexti64 _findnexti64
#define _topen open
#define _tremove remove
#define _trename rename
#define _tsopen sopen
#define _tunlink unlink
#define _tfinddata_t _finddata_t
#define _tfinddatai64_t _finddatai64_t
/* ctype functions */
#define _istascii isascii
#define _istcntrl iscntrl
#define _istxdigit isxdigit
/* Stat functions */
#define _tstat stat
#define _tstati64 _stati64
#define _tfstat fstat
#define _tfstati64 _fstati64
/* Setlocale functions */
#define _tsetlocale setlocale
#ifdef _MBCS
// **************************** MBCS *****************************************
#ifndef __TCHAR_DEFINED
typedef char _TCHAR;
typedef signed char _TSCHAR;
typedef unsigned char _TUCHAR;
typedef unsigned char _TXCHAR;
typedef unsigned int _TINT;
#define __TCHAR_DEFINED
#endif
#ifndef _TCHAR_DEFINED
#if !defined(NO_EXT_KEYS) /* extensions enabled */
typedef char TCHAR;
#endif /* extensions enabled */
#define _TCHAR_DEFINED
#endif
#ifdef _MB_MAP_DIRECT
/* use mb functions directly - types must match */
/* String functions */
#define _tcschr _mbschr
#define _tcscspn _mbscspn
#define _tcsncat _mbsnbcat
#define _tcsncpy _mbsnbcpy
#define _tcspbrk _mbspbrk
#define _tcsrchr _mbsrchr
#define _tcsspn _mbsspn
#define _tcsstr _mbsstr
#define _tcstok _mbstok
#define _tcsnset _mbsnbset
#define _tcsrev _mbsrev
#define _tcsset _mbsset
#define _tcscmp _mbscmp
#define _tcsicmp _mbsicmp
#define _tcsnccmp _mbsncmp
#define _tcsncmp _mbsnbcmp
#define _tcsncicmp _mbsnicmp
#define _tcsnicmp _mbsnbicmp
#define _tcscoll _mbscoll
#define _tcsicoll _mbsicoll
#define _tcsnccoll _mbsncoll
#define _tcsncoll _mbsnbcoll
#define _tcsncicoll _mbsnicoll
#define _tcsnicoll _mbsnbicoll
/* "logical-character" mappings */
#define _tcsclen _mbslen
#define _tcsnccat _mbsncat
#define _tcsnccpy _mbsncpy
#define _tcsncset _mbsnset
/* MBCS-specific mappings */
#define _tcsdec _mbsdec
#define _tcsinc _mbsinc
#define _tcsnbcnt _mbsnbcnt
#define _tcsnccnt _mbsnccnt
#define _tcsnextc _mbsnextc
#define _tcsninc _mbsninc
#define _tcsspnp _mbsspnp
#define _tcslwr _mbslwr
#define _tcsupr _mbsupr
#define _tclen _mbclen
#define _tccpy _mbccpy
#define _tccmp _mbccmp
#else
#if defined(__cplusplus) && defined(__INLINE_FUNCTIONS__)
/* the default: use type-safe inline function thunks */
/* String functions */
inline char *_tcschr( const char *__p, unsigned int __c ) {
return( (char *)_mbschr( (const unsigned char *)__p, __c ) );
}
inline size_t _tcscspn( const char *__p1, const char *__p2 ) {
return( _mbscspn( (const unsigned char *)__p1,
(const unsigned char *)__p2 ) );
}
inline char *_tcsncat( char *__p1, const char *__p2, size_t __l ) {
return( (char *)_mbsnbcat( (unsigned char *)__p1,
(const unsigned char *)__p2, __l ) );
}
inline char *_tcsncpy( char *__p1, const char *__p2, size_t __l ) {
return( (char *)_mbsnbcpy( (unsigned char *)__p1,
(const unsigned char *)__p2, __l ) );
}
inline char *_tcspbrk( const char *__p1, const char *__p2 ) {
return( (char *)_mbspbrk( (const unsigned char *)__p1,
(const unsigned char *)__p2 ) );
}
inline char *_tcsrchr( const char *__p, unsigned int __c ) {
return( (char *)_mbsrchr( (const unsigned char *)__p, __c ) );
}
inline size_t _tcsspn( const char *__p1, const char *__p2 ) {
return( _mbsspn( (const unsigned char *)__p1,
(const unsigned char *)__p2 ) );
}
inline char *_tcsstr( const char *__p1, const char *__p2 ) {
return( (char *)_mbsstr( (const unsigned char *)__p1,
(const unsigned char *)__p2 ) );
}
inline char *_tcstok( char *__p1, const char *__p2 ) {
return( (char *)_mbstok( (unsigned char *)__p1,
(const unsigned char *)__p2 ) );
}
inline char *_tcsnset( char *__p, unsigned int __c, size_t __l ) {
return( (char *)_mbsnbset( (unsigned char *)__p, __c, __l ) );
}
inline char *_tcsrev( char *__p ) {
return( (char *)_mbsrev( (unsigned char *)__p ) );
}
inline char *_tcsset(char *__p, unsigned int __c ) {
return( (char *)_mbsset( (unsigned char *)__p, __c ) );
}
inline int _tcscmp( const char *__p1, const char *__p2 ) {
return( _mbscmp( (const unsigned char *)__p1,
(const unsigned char *)__p2 ) );
}
inline int _tcsicmp( const char *__p1, const char *__p2 ) {
return( _mbsicmp( (const unsigned char *)__p1,
(const unsigned char *)__p2 ) );
}
inline int _tcsnccmp( const char *__p1, const char *__p2, size_t __l ) {
return( _mbsncmp( (const unsigned char *)__p1,
(const unsigned char *)__p2, __l ) );
}
inline int _tcsncmp( const char *__p1, const char *__p2, size_t __l ) {
return( _mbsnbcmp( (const unsigned char *)__p1,
(const unsigned char *)__p2, __l ) );
}
inline int _tcsncicmp( const char *__p1, const char *__p2, size_t __l ) {
return( _mbsnicmp( (const unsigned char *)__p1,
(const unsigned char *)__p2, __l ) );
}
inline int _tcsnicmp( const char *__p1, const char *__p2, size_t __l ) {
return( _mbsnbicmp( (const unsigned char *)__p1,
(const unsigned char *)__p2, __l ) );
}
inline int _tcscoll( const char *__p1, const char *__p2 ) {
return( _mbscoll( (const unsigned char *)__p1,
(const unsigned char *)__p2 ) );
}
inline int _tcsicoll( const char *__p1, const char *__p2 ) {
return( _mbsicoll( (const unsigned char *)__p1,
(const unsigned char *)__p2 ) );
}
inline int _tcsnccoll( const char *__p1, const char *__p2, size_t __l ) {
return( _mbsncoll( (const unsigned char *)__p1,
(const unsigned char *)__p2, __l ) );
}
inline int _tcsncoll( const char *__p1, const char *__p2, size_t __l ) {
return( _mbsnbcoll( (const unsigned char *)__p1,
(const unsigned char *)__p2, __l ) );
}
inline int _tcsncicoll( const char *__p1, const char *__p2, size_t __l ) {
return( _mbsnicoll( (const unsigned char *)__p1,
(const unsigned char *)__p2, __l ) );
}
inline int _tcsnicoll( const char *__p1, const char *__p2, size_t __l ) {
return( _mbsnbicoll( (const unsigned char *)__p1,
(const unsigned char *)__p2, __l ) );
}
/* "logical-character" mappings */
inline size_t _tcsclen( const char *__p ) {
return( _mbslen( (const unsigned char *)__p ) );
}
inline char *_tcsnccat( char *__p1, const char *__p2, size_t __l ) {
return( (char *)_mbsncat( (unsigned char *)__p1,
(const unsigned char *)__p2, __l ) );
}
inline char *_tcsnccpy( char *__p1, const char *__p2, size_t __l ) {
return( (char *)_mbsncpy( (unsigned char *)__p1,
(const unsigned char *)__p2, __l ) );
}
inline char *_tcsncset( char *__p, unsigned int __c, size_t __l ) {
return( (char *)_mbsnset( (unsigned char *)__p, __c, __l ) );
}
/* MBCS-specific mappings */
inline char *_tcsdec( const char *__p1, const char *__p2 ) {
return( (char *)_mbsdec( (const unsigned char *)__p1,
(const unsigned char *)__p2 ) );
}
inline char *_tcsinc( const char *__p ) {
return( (char *)_mbsinc( (const unsigned char *)__p ) );
}
inline size_t _tcsnbcnt( const char *__p, size_t __l ) {
return( _mbsnbcnt( (const unsigned char *)__p, __l ) );
}
inline size_t _tcsnccnt( const char *__p, size_t __l ) {
return( _mbsnccnt( (const unsigned char *)__p, __l ) );
}
inline char *_tcsninc( const char *__p, size_t __l ) {
return( (char *)_mbsninc( (const unsigned char *)__p, __l ) );
}
inline char *_tcsspnp( const char *__p1, const char *__p2 ) {
return( (char *)_mbsspnp( (const unsigned char *)__p1,
(const unsigned char *)__p2 ) );
}
inline char *_tcslwr( char *__p ) {
return( (char *)_mbslwr( (unsigned char *)__p ) );
}
inline char *_tcsupr( char *__p ) {
return( (char *)_mbsupr( (unsigned char *)__p ) );
}
inline size_t _tclen( const char *__p ) {
return( _mbclen( (const unsigned char *)__p ) );
}
inline void _tccpy( char *__p1, const char *__p2 ) {
_mbccpy( (unsigned char *)__p1, (const unsigned char *)__p2 );
}
inline int _tccmp( const char *__p1, const char *__p2 ) {
return _mbccmp( (const unsigned char *)__p1, (const unsigned char *)__p2 );
}
inline unsigned int _tcsnextc( const char *__p ) {
return( _mbsnextc( (const unsigned char *)__p ) );
}
#else
/* use type-safe linked-in function thunks */
/* String functions */
_WCRTLINK extern char *_tcschr(const char *, unsigned int);
_WCRTLINK extern size_t _tcscspn(const char *, const char *);
_WCRTLINK extern char *_tcsncat(char *, const char *, size_t);
_WCRTLINK extern char *_tcsncpy(char *, const char *, size_t);
_WCRTLINK extern char *_tcspbrk(const char *, const char *);
_WCRTLINK extern char *_tcsrchr(const char *, int);
_WCRTLINK extern size_t _tcsspn(const char *, const char *);
_WCRTLINK extern char *_tcsstr(const char *, const char *);
_WCRTLINK extern char *_tcstok(char *, const char *);
_WCRTLINK extern char *_tcsnset(char *, unsigned int, size_t);
_WCRTLINK extern char *_tcsrev(char *);
_WCRTLINK extern char *_tcsset(char *, unsigned int);
_WCRTLINK extern int _tcscmp(const char *, const char *);
_WCRTLINK extern int _tcsicmp(const char *, const char *);
_WCRTLINK extern int _tcsnccmp(const char *, const char *, size_t);
_WCRTLINK extern int _tcsncmp(const char *, const char *, size_t);
_WCRTLINK extern int _tcsncicmp(const char *, const char *, size_t);
_WCRTLINK extern int _tcsnicmp(const char *, const char *, size_t);
_WCRTLINK extern int _tcscoll(const char *, const char *);
_WCRTLINK extern int _tcsicoll(const char *, const char *);
_WCRTLINK extern int _tcsnccoll(const char *, const char *, size_t);
_WCRTLINK extern int _tcsncoll(const char *, const char *, size_t);
_WCRTLINK extern int _tcsncicoll(const char *, const char *, size_t);
_WCRTLINK extern int _tcsnicoll(const char *, const char *, size_t);
/* "logical-character" mappings */
_WCRTLINK extern size_t _tcsclen(const char *);
_WCRTLINK extern char *_tcsnccat(char *, const char *, size_t);
_WCRTLINK extern char *_tcsnccpy(char *, const char *, size_t);
_WCRTLINK extern char *_tcsncset(char *, unsigned int, size_t);
/* MBCS-specific mappings */
_WCRTLINK extern char *_tcsdec(const char *, const char *);
_WCRTLINK extern char *_tcsinc(const char *);
_WCRTLINK extern size_t _tcsnbcnt(const char *, size_t);
_WCRTLINK extern size_t _tcsnccnt(const char *, size_t);
_WCRTLINK extern unsigned int _tcsnextc (const char *);
_WCRTLINK extern char *_tcsninc(const char *, size_t);
_WCRTLINK extern char *_tcsspnp(const char *, const char *);
_WCRTLINK extern char *_tcslwr(char *);
_WCRTLINK extern char *_tcsupr(char *);
_WCRTLINK extern size_t _tclen(const char *);
_WCRTLINK extern void _tccpy(char *, const char *);
_WCRTLINK extern int _tccmp(const char *, const char *);
#endif
#endif
/* ctype functions */
#define _istalnum _ismbcalnum
#define _istalpha _ismbcalpha
#define _istdigit _ismbcdigit
#define _istgraph _ismbcgraph
#define _istlegal _ismbclegal
#define _istlower _ismbclower
#define _istprint _ismbcprint
#define _istpunct _ismbcpunct
#define _istspace _ismbcspace
#define _istupper _ismbcupper
#define _totupper _mbctoupper
#define _totlower _mbctolower
#define _istlead _ismbblead
#define _istleadbyte isleadbyte
#else
// **************************** SBCS *****************************************
#ifndef __TCHAR_DEFINED
typedef char _TCHAR;
typedef signed char _TSCHAR;
typedef unsigned char _TUCHAR;
typedef char _TXCHAR;
typedef int _TINT;
#define __TCHAR_DEFINED
#endif
#ifndef _TCHAR_DEFINED
#if !defined(NO_EXT_KEYS) /* extensions enabled */
typedef char TCHAR;
#endif /* extensions enabled */
#define _TCHAR_DEFINED
#endif
/* String functions */
#define _tcschr strchr
#define _tcscspn strcspn
#define _tcsncat strncat
#define _tcsncpy strncpy
#define _tcspbrk strpbrk
#define _tcsrchr strrchr
#define _tcsspn strspn
#define _tcsstr strstr
#define _tcstok strtok
#define _tcsnset strnset
#define _tcsrev strrev
#define _tcsset strset
#define _tcscmp strcmp
#define _tcsicmp stricmp
#define _tcsnccmp strncmp
#define _tcsncmp strncmp
#define _tcsncicmp strnicmp
#define _tcsnicmp strnicmp
#define _tcscoll strcoll
#define _tcsicoll _stricoll
#define _tcsnccoll _strncoll
#define _tcsncoll _strncoll
#define _tcsncicoll _strnicoll
#define _tcsnicoll _strnicoll
/* "logical-character" mappings */
#define _tcsclen strlen
#define _tcsnccat strncat
#define _tcsnccpy strncpy
#define _tcsncset strnset
#define _tcsdec _strdec
#define _tcsinc _strinc
#define _tcsnbcnt _strncnt
#define _tcsnccnt _strncnt
#define _tcsnextc _strnextc
#define _tcsninc _strninc
#define _tcsspnp _strspnp
#define _tcslwr strlwr
#define _tcsupr strupr
#define _tcsxfrm strxfrm
#if defined(__cplusplus) && defined(__INLINE_FUNCTIONS__)
inline size_t _tclen( const char * ) {
return( 1 );
}
inline void _tccpy( char *__p1, const char *__p2 ) {
*__p1 = *__p2;
}
inline int _tccmp( const char *__p1, const char *__p2 ) {
return( (int) (((unsigned char)*__p1)-((unsigned char)*__p2)) );
}
#else
#define _tclen(__p) (1)
#define _tccpy(__p1,__p2) ((*(__p1) = *(__p2)))
#define _tccmp(__p1,__p2) (((unsigned char)*(__p1))-((unsigned char)*(__p2)))
#endif
/* ctype functions */
#define _istalnum isalnum
#define _istalpha isalpha
#define _istdigit isdigit
#define _istgraph isgraph
#define _istlower islower
#define _istprint isprint
#define _istpunct ispunct
#define _istspace isspace
#define _istupper isupper
#define _totupper toupper
#define _totlower tolower
#define _istlegal(_c) (1)
#define _istlead(_c) (0)
#define _istleadbyte(_c) (0)
#if defined(__cplusplus) && defined(__INLINE_FUNCTIONS__)
inline char *_strdec( const char *, const char *__p ) {
return( (char *)(__p-1) );
}
inline char *_strinc( const char *__p ) {
return( (char *)(__p+1) );
}
inline unsigned int _strnextc( const char *__p ) {
return( (unsigned int)*__p );
}
inline char *_strninc( const char *__p, size_t __l ) {
return( (char *)(__p+__l) );
}
inline size_t _strncnt( const char *__p, size_t __l ) {
size_t __i;
__i = strlen(__p);
return( (__i>__l) ? __l : __i );
}
inline char *_strspnp( const char *__p1, const char *__p2 ) {
return( (*(__p1 += strspn(__p1,__p2))!='\0') ? (char*)__p1 : NULL );
}
#else
#define _strdec(__p1, __p2) ((__p2)-1)
#define _strinc(__p) ((__p)+1)
#define _strnextc(__p) ((unsigned int) *(__p))
#define _strninc(__p, __l) (((__p)+(__l)))
#define _strncnt(__p, __l) ((strlen(__p)>__l) ? __l : strlen(__p))
#define _strspnp(__p1, __p2) ((*((__p1)+strspn(__p1,__p2))) ? \
((__p1)+strspn(__p1,__p2)) : NULL)
#endif
#endif
#endif
#ifdef __cplusplus
} /* extern "C" */
#endif
#define _T(x) __T(x)
#define _TEXT(x) __T(x)
#endif