windows-nt/Source/XPSP1/NT/termsrv/remdsk/rds/dev/inc16/tchar.h
2020-09-26 16:20:57 +08:00

312 lines
6.4 KiB
C

/***
*tchar.h - definitions for generic international text functions (16-bit)
*
* Copyright (c) 1991-1994, Microsoft Corporation. All rights reserved.
*
*Purpose:
* Definitions for generic international functions, mostly defines
* which map string/formatted-io/ctype functions to char, wchar_t, or
* MBCS versions. To be used for compatibility between single-byte,
* multi-byte and Unicode text models.
*
* NOTE: This is a stripped-down version for use with 16-bit libraries.
* It maps to SBCS only, not to MBCS or Unicode.
*
****/
#ifndef _INC_TCHAR
#ifdef _MSC_VER
#pragma warning(disable:4505) /* disable unwanted C++ /W4 warning */
/* #pragma warning(default:4505) */ /* use this to reenable, if necessary */
#endif /* _MSC_VER */
#ifdef __cplusplus
extern "C" {
#endif
/* Define __cdecl for non-Microsoft compilers */
#if ( !defined(_MSC_VER) && !defined(__cdecl) )
#define __cdecl
#endif
#define _TEOF EOF
#define __T(x) x
#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 !__STDC__
typedef char TCHAR;
#endif
#define _TCHAR_DEFINED
#endif
/* ++++++++++++++++++++ SBCS FUNCTIONS ++++++++++++++++++++ */
/* Program */
#define _tmain main
#ifdef _POSIX_
#define _tenviron environ
#else
#define _tenviron _environ
#endif
/* Far functions */
#define _ftcscat _fstrcat
#define _ftcschr _fstrchr
#define _ftcscmp _fstrcmp
#define _ftcscpy _fstrcpy
#define _ftcscspn _fstrcspn
#define _ftcslen _fstrlen
#define _ftcsncat _fstrncat
#define _ftcsncmp _fstrncmp
#define _ftcsncpy _fstrncpy
#define _ftcspbrk _fstrpbrk
#define _ftcsrchr _fstrrchr
#define _ftcsspn _fstrspn
#define _ftcsstr _fstrstr
#define _ftcstok _fstrtok
#define _ftcsdup _fstrdup
#define _ftcsicmp _fstricmp
#define _ftcsnicmp _fstrnicmp
#define _ftcsnset _fstrnset
#define _ftcsrev _fstrrev
#define _ftcsset _fstrset
#define _ftcslwr _fstrlwr
#define _ftcsupr _fstrupr
/* 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 _vsntprintf _vsnprintf
#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
/* 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 _tgetcwd _getcwd
#define _tgetdcwd _getdcwd
#define _tmkdir _mkdir
#define _trmdir _rmdir
/* Environment/Path functions */
#define _tfullpath _fullpath
#define _tgetenv getenv
#define _tmakepath _makepath
#define _tputenv _putenv
#define _tsearchenv _searchenv
#define _tsplitpath _splitpath
/* Stdio functions */
#ifdef _POSIX_
#define _tfdopen fdopen
#else
#define _tfdopen _fdopen
#endif
#define _tfsopen _fsopen
#define _tfopen fopen
#define _tfreopen freopen
#define _tperror perror
#define _tpopen _popen
#define _tsetbuf setbuf
#define _tsetvbuf setvbuf
#define _ttempnam _tempnam
#define _ttmpnam tmpnam
/* Io functions */
#define _taccess _access
#define _tchmod _chmod
#define _tcreat _creat
#define _tfindfirst _findfirst
#define _tfindnext _findnext
#define _tmktemp _mktemp
#define _topen _open
#define _tremove remove
#define _trename rename
#define _tsopen _sopen
#define _tunlink _unlink
#define _tfinddata_t _finddata_t
/* Stat functions */
#define _tstat _stat
/* Setlocale functions */
#define _tsetlocale setlocale
/* 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 _tcscoll strcoll
#define _tcsdup _strdup
#define _tcschr strchr
#define _tcscmp strcmp
#define _tcscspn strcspn
#define _tcsncat strncat
#define _tcsncmp strncmp
#define _tcsncpy strncpy
#define _tcspbrk strpbrk
#define _tcsrchr strrchr
#define _tcsspn strspn
#define _tcsstr strstr
#define _tcstok strtok
#define _tcsicmp _stricmp
#define _tcsnicmp _strnicmp
#define _tcsnset _strnset
#define _tcsrev _strrev
#define _tcsset _strset
/* "logical-character" mappings */
#define _tcsclen strlen
#define _tcsnccat strncat
#define _tcsnccpy strncpy
#define _tcsnccmp strncmp
#define _tcsncicmp _strnicmp
#define _tcsncset _strnset
/* Ctype functions */
#define _istascii isascii
#define _istcntrl iscntrl
#define _istxdigit isxdigit
#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
/* Generic text macros to be used with string literals and character constants.
Will also allow symbolic constants that resolve to same. */
#define _T(x) __T(x)
#define _TEXT(x) __T(x)
#ifdef __cplusplus
}
#endif
#define _INC_TCHAR
#endif /* _INC_TCHAR */