1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#include <crtdefs.h>
7
8#ifndef _INC_TCHAR
9#define _INC_TCHAR
10
11#ifdef _STRSAFE_H_INCLUDED_
12#error Need to include strsafe.h after tchar.h
13#endif
14
15#ifdef __cplusplus
16extern "C" {
17#endif
18
19#ifndef __CYGWIN__
20
21#define _ftcscat _tcscat
22#define _ftcschr _tcschr
23#define _ftcscpy _tcscpy
24#define _ftcscspn _tcscspn
25#define _ftcslen _tcslen
26#define _ftcsncat _tcsncat
27#define _ftcsncpy _tcsncpy
28#define _ftcspbrk _tcspbrk
29#define _ftcsrchr _tcsrchr
30#define _ftcsspn _tcsspn
31#define _ftcsstr _tcsstr
32#define _ftcstok _tcstok
33
34#define _ftcsdup _tcsdup
35#define _ftcsnset _tcsnset
36#define _ftcsrev _tcsrev
37#define _ftcsset _tcsset
38
39#define _ftcscmp _tcscmp
40#define _ftcsicmp _tcsicmp
41#define _ftcsnccmp _tcsnccmp
42#define _ftcsncmp _tcsncmp
43#define _ftcsncicmp _tcsncicmp
44#define _ftcsnicmp _tcsnicmp
45
46#define _ftcscoll _tcscoll
47#define _ftcsicoll _tcsicoll
48#define _ftcsnccoll _tcsnccoll
49#define _ftcsncoll _tcsncoll
50#define _ftcsncicoll _tcsncicoll
51#define _ftcsnicoll _tcsnicoll
52
53#define _ftcsclen _tcsclen
54#define _ftcsnccat _tcsnccat
55#define _ftcsnccpy _tcsnccpy
56#define _ftcsncset _tcsncset
57
58#define _ftcsdec _tcsdec
59#define _ftcsinc _tcsinc
60#define _ftcsnbcnt _tcsnbcnt
61#define _ftcsnccnt _tcsnccnt
62#define _ftcsnextc _tcsnextc
63#define _ftcsninc _tcsninc
64#define _ftcsspnp _tcsspnp
65
66#define _ftcslwr _tcslwr
67#define _ftcsupr _tcsupr
68
69#define _ftclen _tclen
70#define _ftccpy _tccpy
71#define _ftccmp _tccmp
72
73#ifndef _CONST_RETURN
74#ifdef __cplusplus
75#define _CONST_RETURN const
76#define _CRT_CONST_CORRECT_OVERLOADS
77#else
78#define _CONST_RETURN
79#endif
80#endif
81
82#define _WConst_return _CONST_RETURN
83
84#endif /* __CYGWIN__ */
85
86#ifdef _UNICODE
87
88#ifdef __cplusplus
89}
90#endif
91
92#include <wchar.h>
93
94#ifdef __cplusplus
95extern "C" {
96#endif
97
98#ifndef __CYGWIN__
99
100#ifndef _WCTYPE_T_DEFINED
101#define _WCTYPE_T_DEFINED
102  typedef unsigned short wint_t;
103  typedef unsigned short wctype_t;
104#endif
105
106#endif /* __CYGWIN__ */
107
108#ifndef __TCHAR_DEFINED
109#define __TCHAR_DEFINED
110  typedef wchar_t _TCHAR;
111  typedef wchar_t _TSCHAR;
112  typedef wchar_t _TUCHAR;
113  typedef wchar_t _TXCHAR;
114  typedef wint_t _TINT;
115#endif
116
117#ifndef NO_OLDNAMES
118#ifndef _TCHAR_DEFINED
119#define _TCHAR_DEFINED
120  typedef wchar_t TCHAR,*PTCHAR;
121  typedef wchar_t TBYTE,*PTBYTE;
122#endif
123#endif
124
125#define _TEOF WEOF
126
127#define __T(x) L##x
128
129#ifndef __CYGWIN__
130
131#define _tmain wmain
132#define _tWinMain wWinMain
133#define _tenviron _wenviron
134#define __targv __wargv
135
136#define _tprintf wprintf
137#define _tprintf_l _wprintf_l
138#define _tprintf_p _wprintf_p
139#define _tprintf_p_l _wprintf_p_l
140#define _tcprintf _cwprintf
141#define _tcprintf_l _cwprintf_l
142#define _tcprintf_p _cwprintf_p
143#define _tcprintf_p_l _cwprintf_p_l
144#define _vtcprintf _vcwprintf
145#define _vtcprintf_l _vcwprintf_l
146#define _vtcprintf_p _vcwprintf_p
147#define _vtcprintf_p_l _vcwprintf_p_l
148#define _ftprintf fwprintf
149#define _ftprintf_l _fwprintf_l
150#define _ftprintf_p _fwprintf_p
151#define _ftprintf_p_l _fwprintf_p_l
152#define _stprintf swprintf
153#define _stprintf_l __swprintf_l
154#define _stprintf_p _swprintf_p
155#define _stprintf_p_l _swprintf_p_l
156#define _sctprintf _scwprintf
157#define _sctprintf_l _scwprintf_l
158#define _sctprintf_p _scwprintf_p
159#define _sctprintf_p_l _scwprintf_p_l
160#define _sntprintf _snwprintf
161#define _sntprintf_l _snwprintf_l
162#define _vtprintf vwprintf
163#define _vtprintf_l _vwprintf_l
164#define _vtprintf_p _vwprintf_p
165#define _vtprintf_p_l _vwprintf_p_l
166#define _vftprintf vfwprintf
167#define _vftprintf_l _vfwprintf_l
168#define _vftprintf_p _vfwprintf_p
169#define _vftprintf_p_l _vfwprintf_p_l
170#define _vstprintf vswprintf
171#define _vstprintf_l _vswprintf_l
172#define _vstprintf_p _vswprintf_p
173#define _vstprintf_p_l _vswprintf_p_l
174#define _vsctprintf _vscwprintf
175#define _vsctprintf_l _vscwprintf_l
176#define _vsctprintf_p _vscwprintf_p
177#define _vsctprintf_p_l _vscwprintf_p_l
178#define _vsntprintf _vsnwprintf
179#define _vsntprintf_l _vsnwprintf_l
180
181#define _tscanf wscanf
182#define _tscanf_l _wscanf_l
183#define _tcscanf _cwscanf
184#define _tcscanf_l _cwscanf_l
185#define _ftscanf fwscanf
186#define _ftscanf_l _fwscanf_l
187#define _stscanf swscanf
188#define _stscanf_l _swscanf_l
189#define _sntscanf _snwscanf
190#define _sntscanf_l _snwscanf_l
191
192#define _fgettc fgetwc
193#define _fgettc_nolock _fgetwc_nolock
194#define _fgettchar _fgetwchar
195#define _fgetts fgetws
196#define _fputtc fputwc
197#define _fputtc_nolock _fputwc_nolock
198#define _fputtchar _fputwchar
199#define _fputts fputws
200#define _cputts _cputws
201#define _cgetts _cgetws
202#define _gettc getwc
203#define _gettc_nolock _getwc_nolock
204#define _gettch _getwch
205#define _gettch_nolock _getwch_nolock
206#define _gettche _getwche
207#define _gettche_nolock _getwche_nolock
208#define _gettchar getwchar
209#define _gettchar_nolock _getwchar_nolock
210#define _getts _getws
211#define _puttc putwc
212#define _puttc_nolock _putwc_nolock
213#define _puttchar putwchar
214#define _puttchar_nolock _putwchar_nolock
215#define _puttch _putwch
216#define _puttch_nolock _putwch_nolock
217#define _putts _putws
218#define _ungettc ungetwc
219#define _ungettc_nolock _ungetwc_nolock
220#define _ungettch _ungetwch
221#define _ungettch_nolock _ungetwch_nolock
222
223#define _tcstod wcstod
224#define _tcstol wcstol
225#define _tcstoul wcstoul
226#define _tcstoi64 _wcstoi64
227#define _tcstoui64 _wcstoui64
228#define _tstof _wtof
229#define _tstol _wtol
230#define _tstoi _wtoi
231#define _tstoi64 _wtoi64
232#define _tcstod_l _wcstod_l
233#define _tcstol_l _wcstol_l
234#define _tcstoul_l _wcstoul_l
235#define _tcstoi64_l _wcstoi64_l
236#define _tcstoui64_l _wcstoui64_l
237#define _tstof_l _wtof_l
238#define _tstol_l _wtol_l
239#define _tstoi_l _wtoi_l
240#define _tstoi64_l _wtoi64_l
241
242#define _itot _itow
243#define _ltot _ltow
244#define _ultot _ultow
245#define _ttoi _wtoi
246#define _ttol _wtol
247
248#define _ttoi64 _wtoi64
249#define _i64tot _i64tow
250#define _ui64tot _ui64tow
251
252#define _tcscat wcscat
253#define _tcschr wcschr
254#define _tcscpy wcscpy
255#define _tcscspn wcscspn
256#define _tcslen wcslen
257#define _tcsnlen wcsnlen
258#define _tcsncat wcsncat
259#define _tcsncat_l _wcsncat_l
260#define _tcsncpy wcsncpy
261#define _tcsncpy_l _wcsncpy_l
262#define _tcspbrk wcspbrk
263#define _tcsrchr wcsrchr
264#define _tcsspn wcsspn
265#define _tcsstr wcsstr
266#define _tcstok wcstok
267#define _tcstok_l _wcstok_l
268#define _tcserror _wcserror
269#define __tcserror __wcserror
270
271#define _tcsdup _wcsdup
272#define _tcsnset _wcsnset
273#define _tcsnset_l _wcsnset_l
274#define _tcsrev _wcsrev
275#define _tcsset _wcsset
276#define _tcsset_l _wcsset_l
277
278#define _tcscmp wcscmp
279#define _tcsicmp _wcsicmp
280#define _tcsicmp_l _wcsicmp_l
281#define _tcsnccmp wcsncmp
282#define _tcsncmp wcsncmp
283#define _tcsncicmp _wcsnicmp
284#define _tcsncicmp_l _wcsnicmp_l
285#define _tcsnicmp _wcsnicmp
286#define _tcsnicmp_l _wcsnicmp_l
287
288#define _tcscoll wcscoll
289#define _tcscoll_l _wcscoll_l
290#define _tcsicoll _wcsicoll
291#define _tcsicoll_l _wcsicoll_l
292#define _tcsnccoll _wcsncoll
293#define _tcsnccoll_l _wcsncoll_l
294#define _tcsncoll _wcsncoll
295#define _tcsncoll_l _wcsncoll_l
296#define _tcsncicoll _wcsnicoll
297#define _tcsncicoll_l _wcsnicoll_l
298#define _tcsnicoll _wcsnicoll
299#define _tcsnicoll_l _wcsnicoll_l
300
301#define _texecl _wexecl
302#define _texecle _wexecle
303#define _texeclp _wexeclp
304#define _texeclpe _wexeclpe
305#define _texecv _wexecv
306#define _texecve _wexecve
307#define _texecvp _wexecvp
308#define _texecvpe _wexecvpe
309
310#define _tspawnl _wspawnl
311#define _tspawnle _wspawnle
312#define _tspawnlp _wspawnlp
313#define _tspawnlpe _wspawnlpe
314#define _tspawnv _wspawnv
315#define _tspawnve _wspawnve
316#define _tspawnvp _wspawnvp
317#define _tspawnvp _wspawnvp
318#define _tspawnvpe _wspawnvpe
319
320#define _tsystem _wsystem
321
322#define _tasctime _wasctime
323#define _tctime _wctime
324#define _tctime32 _wctime32
325#define _tctime64 _wctime64
326#define _tstrdate _wstrdate
327#define _tstrtime _wstrtime
328#define _tutime _wutime
329#define _tutime32 _wutime
330#define _tutime64 _wutime64
331#define _tcsftime wcsftime
332#define _tcsftime_l _wcsftime_l
333
334#define _tchdir _wchdir
335#define _tgetcwd _wgetcwd
336#define _tgetdcwd _wgetdcwd
337#define _tgetdcwd_nolock _wgetdcwd_nolock
338#define _tmkdir _wmkdir
339#define _trmdir _wrmdir
340
341#define _tfullpath _wfullpath
342#define _tgetenv _wgetenv
343#define _tmakepath _wmakepath
344#define _tpgmptr _wpgmptr
345#define _get_tpgmptr _get_wpgmptr
346#define _tputenv _wputenv
347#define _tsearchenv _wsearchenv
348#define _tsplitpath _wsplitpath
349
350#define _tfdopen _wfdopen
351#define _tfsopen _wfsopen
352#define _tfopen _wfopen
353#define _tfreopen _wfreopen
354#define _tperror _wperror
355#define _tpopen _wpopen
356#define _ttempnam _wtempnam
357#define _ttmpnam _wtmpnam
358
359#define _taccess _waccess
360#define _tchmod _wchmod
361#define _tcreat _wcreat
362#define _tfindfirst _wfindfirst
363#define _tfindfirst32 _wfindfirst32
364#define _tfindfirst64 _wfindfirst64
365#define _tfindfirsti64 _wfindfirsti64
366#define _tfindfirst32i64 _wfindfirst32i64
367#define _tfindfirst64i32 _wfindfirst64i32
368#define _tfindnext _wfindnext
369#define _tfindnext32 _wfindnext32
370#define _tfindnext64 _wfindnext64
371#define _tfindnexti64 _wfindnexti64
372#define _tfindnext32i64 _wfindnext32i64
373#define _tfindnext64i32 _wfindnext64i32
374#define _tmktemp _wmktemp
375#define _topen _wopen
376#define _tremove _wremove
377#define _trename _wrename
378#define _tsopen _wsopen
379#define _tunlink _wunlink
380
381#define _tfinddata_t _wfinddata_t
382#define _tfinddata32_t _wfinddata32_t
383#define _tfinddata64_t _wfinddata64_t
384#define _tfinddatai64_t _wfinddatai64_t
385#define _tfinddata32i64_t _wfinddata32i64_t
386#define _tfinddata64i32_t _wfinddata64i32_t
387
388#define _tstat _wstat
389#define _tstat32 _wstat32
390#define _tstat32i64 _wstat32i64
391#define _tstat64 _wstat64
392#define _tstat64i32 _wstat64i32
393#define _tstati64 _wstati64
394
395#define _tsetlocale _wsetlocale
396
397#define _tcsclen wcslen
398#define _tcscnlen wcsnlen
399#define _tcsclen_l(_String,_Locale) wcslen(_String)
400#define _tcscnlen_l(_String,_Max_count,_Locale) wcsnlen_l((_String),(_Max_count))
401#define _tcsnccat wcsncat
402#define _tcsnccat_l _wcsncat_l
403#define _tcsnccpy wcsncpy
404#define _tcsnccpy_l _wcsncpy_l
405#define _tcsncset _wcsnset
406
407#define _tcsdec _wcsdec
408#define _tcsinc _wcsinc
409#define _tcsnbcnt _wcsncnt
410#define _tcsnccnt _wcsncnt
411#define _tcsnextc _wcsnextc
412#define _tcsninc _wcsninc
413#define _tcsspnp _wcsspnp
414
415#define _tcslwr _wcslwr
416#define _tcslwr_l _wcslwr_l
417#define _tcsupr _wcsupr
418#define _tcsupr_l _wcsupr_l
419#define _tcsxfrm wcsxfrm
420#define _tcsxfrm_l _wcsxfrm_l
421
422#define _tclen(_pc) (1)
423#define _tccpy(_pc1,_cpc2) ((*(_pc1) = *(_cpc2)))
424#define _tccmp(_cpc1,_cpc2) ((*(_cpc1))-(*(_cpc2)))
425
426#define _istalnum iswalnum
427#define _istalnum_l _iswalnum_l
428#define _istalpha iswalpha
429#define _istalpha_l _iswalpha_l
430#define _istascii iswascii
431#define _istcntrl iswcntrl
432#define _istcntrl_l _iswcntrl_l
433#define _istdigit iswdigit
434#define _istdigit_l _iswdigit_l
435#define _istgraph iswgraph
436#define _istgraph_l _iswgraph_l
437#define _istlower iswlower
438#define _istlower_l _iswlower_l
439#define _istprint iswprint
440#define _istprint_l _iswprint_l
441#define _istpunct iswpunct
442#define _istpunct_l _iswpunct_l
443#define _istspace iswspace
444#define _istspace_l _iswspace_l
445#define _istupper iswupper
446#define _istupper_l _iswupper_l
447#define _istxdigit iswxdigit
448#define _istxdigit_l _iswxdigit_l
449
450#define _totupper towupper
451#define _totupper_l _towupper_l
452#define _totlower towlower
453#define _totlower_l _towlower_l
454
455#define _istlegal(_Char) (1)
456#define _istlead(_Char) (0)
457#define _istleadbyte(_Char) (0)
458#define _istleadbyte_l(_Char,_Locale) (0)
459
460#define _wcsdec(_cpc1,_cpc2) ((_cpc1)>=(_cpc2) ? NULL : (_cpc2)-1)
461#define _wcsinc(_pc) ((_pc)+1)
462#define _wcsnextc(_cpc) ((unsigned int) *(_cpc))
463#define _wcsninc(_pc,_sz) (((_pc)+(_sz)))
464  _CRTIMP size_t __cdecl __wcsncnt(const wchar_t *_Str,size_t _MaxCount);
465#define _wcsncnt(_cpc,_sz) (__wcsncnt(_cpc,_sz))
466#define _wcsspnp(_cpc1,_cpc2) (!_cpc1 ? NULL : ((*((_cpc1)+wcsspn(_cpc1,_cpc2))) ? ((_cpc1)+wcsspn(_cpc1,_cpc2)) : NULL))
467#define _wcsncpy_l(_Destination,_Source,_Count,_Locale) (wcsncpy(_Destination,_Source,_Count))
468#define _wcsncat_l(_Destination,_Source,_Count,_Locale) (wcsncat(_Destination,_Source,_Count))
469#define _wcstok_l(_String,_Delimiters,_Locale) (wcstok(_String,_Delimiters))
470#define _wcsnset_l(_Destination,_Value,_Count,_Locale) (_wcsnset(_Destination,_Value,_Count))
471#define _wcsset_l(_Destination,_Value,_Locale) (_wcsset(_Destination,_Value))
472
473  /* dirent structures and functions */
474#define _tdirent	_wdirent
475#define _TDIR 		_WDIR
476#define _topendir	_wopendir
477#define _tclosedir	_wclosedir
478#define _treaddir	_wreaddir
479#define _trewinddir	_wrewinddir
480#define _ttelldir	_wtelldir
481#define _tseekdir	_wseekdir
482
483#endif /* __CYGWIN__ */
484
485#else
486
487#ifdef __cplusplus
488}
489#endif
490
491#include <string.h>
492
493#ifdef __cplusplus
494extern "C" {
495#endif
496
497#define _TEOF EOF
498
499#define __T(x) x
500
501#ifndef __CYGWIN__
502
503#define _tmain main
504#define _tWinMain WinMain
505#ifdef _POSIX_
506#define _tenviron environ
507#else
508#define _tenviron _environ
509#endif
510#define __targv __argv
511
512#define _tprintf printf
513#define _tprintf_l _printf_l
514#define _tprintf_p _printf_p
515#define _tprintf_p_l _printf_p_l
516#define _tcprintf _cprintf
517#define _tcprintf_l _cprintf_l
518#define _tcprintf_p _cprintf_p
519#define _tcprintf_p_l _cprintf_p_l
520#define _vtcprintf _vcprintf
521#define _vtcprintf_l _vcprintf_l
522#define _vtcprintf_p _vcprintf_p
523#define _vtcprintf_p_l _vcprintf_p_l
524#define _ftprintf fprintf
525#define _ftprintf_l _fprintf_l
526#define _ftprintf_p _fprintf_p
527#define _ftprintf_p_l _fprintf_p_l
528#define _stprintf sprintf
529#define _stprintf_l _sprintf_l
530#define _stprintf_p _sprintf_p
531#define _stprintf_p_l _sprintf_p_l
532#define _sctprintf _scprintf
533#define _sctprintf_l _scprintf_l
534#define _sctprintf_p _scprintf_p
535#define _sctprintf_p_l _scprintf_p_l
536#define _sntprintf _snprintf
537#define _sntprintf_l _snprintf_l
538#define _vtprintf vprintf
539#define _vtprintf_l _vprintf_l
540#define _vtprintf_p _vprintf_p
541#define _vtprintf_p_l _vprintf_p_l
542#define _vftprintf vfprintf
543#define _vftprintf_l _vfprintf_l
544#define _vftprintf_p _vfprintf_p
545#define _vftprintf_p_l _vfprintf_p_l
546#define _vstprintf vsprintf
547#define _vstprintf_l _vsprintf_l
548#define _vstprintf_p _vsprintf_p
549#define _vstprintf_p_l _vsprintf_p_l
550#define _vsctprintf _vscprintf
551#define _vsctprintf_l _vscprintf_l
552#define _vsctprintf_p _vscprintf_p
553#define _vsctprintf_p_l _vscprintf_p_l
554#define _vsntprintf _vsnprintf
555#define _vsntprintf_l _vsnprintf_l
556
557#define _tscanf scanf
558#define _tscanf_l _scanf_l
559#define _tcscanf _cscanf
560#define _tcscanf_l _cscanf_l
561#define _ftscanf fscanf
562#define _ftscanf_l _fscanf_l
563#define _stscanf sscanf
564#define _stscanf_l _sscanf_l
565#define _sntscanf _snscanf
566#define _sntscanf_l _snscanf_l
567
568#define _fgettc fgetc
569#define _fgettc_nolock _fgetc_nolock
570#define _fgettchar _fgetchar
571#define _fgetts fgets
572#define _fputtc fputc
573#define _fputtc_nolock _fputc_nolock
574#define _fputtchar _fputchar
575#define _fputts fputs
576#define _cputts _cputs
577#define _gettc getc
578#define _gettc_nolock _getc_nolock
579#define _gettch _getch
580#define _gettch_nolock _getch_nolock
581#define _gettche _getche
582#define _gettche_nolock _getche_nolock
583#define _gettchar getchar
584#define _gettchar_nolock _getchar_nolock
585#define _getts gets
586#define _cgetts _cgets
587#define _puttc putc
588#define _puttc_nolock _putc_nolock
589#define _puttchar putchar
590#define _puttchar_nolock _putchar_nolock
591#define _puttch _putch
592#define _puttch_nolock _putch_nolock
593#define _putts puts
594#define _ungettc ungetc
595#define _ungettc_nolock _ungetc_nolock
596#define _ungettch _ungetch
597#define _ungettch_nolock _ungetch_nolock
598
599#define _tcstod strtod
600#define _tcstol strtol
601#define _tcstoul strtoul
602#define _tstof atof
603#define _tstol atol
604#define _tstoi atoi
605#define _tstoi64 _atoi64
606#define _tcstod_l _strtod_l
607#define _tcstol_l _strtol_l
608#define _tcstoul_l _strtoul_l
609#define _tstof_l _atof_l
610#define _tstol_l _atol_l
611#define _tstoi_l _atoi_l
612#define _tstoi64_l _atoi64_l
613
614#define _itot _itoa
615#define _ltot _ltoa
616#define _ultot _ultoa
617#define _ttoi atoi
618#define _ttol atol
619
620#define _ttoi64 _atoi64
621#define _tcstoi64 _strtoi64
622#define _tcstoi64_l _strtoi64_l
623#define _tcstoui64 _strtoui64
624#define _tcstoui64_l _strtoui64_l
625#define _i64tot _i64toa
626#define _ui64tot _ui64toa
627
628#define _tcscat strcat
629#define _tcscpy strcpy
630#define _tcsdup _strdup
631#define _tcslen strlen
632#define _tcsnlen strnlen
633#define _tcsxfrm strxfrm
634#define _tcsxfrm_l _strxfrm_l
635#define _tcserror strerror
636#define __tcserror _strerror
637
638#define _texecl _execl
639#define _texecle _execle
640#define _texeclp _execlp
641#define _texeclpe _execlpe
642#define _texecv _execv
643#define _texecve _execve
644#define _texecvp _execvp
645#define _texecvpe _execvpe
646
647#define _tspawnl _spawnl
648#define _tspawnle _spawnle
649#define _tspawnlp _spawnlp
650#define _tspawnlpe _spawnlpe
651#define _tspawnv _spawnv
652#define _tspawnve _spawnve
653#define _tspawnvp _spawnvp
654#define _tspawnvpe _spawnvpe
655
656#define _tsystem system
657
658#define _tasctime asctime
659#define _tctime ctime
660#define _tctime32 _ctime32
661#define _tctime64 _ctime64
662#define _tstrdate _strdate
663#define _tstrtime _strtime
664#define _tutime _utime
665#define _tutime32 _utime32
666#define _tutime64 _utime64
667#define _tcsftime strftime
668#define _tcsftime_l _strftime_l
669
670#define _tchdir _chdir
671#define _tgetcwd _getcwd
672#define _tgetdcwd _getdcwd
673#define _tgetdcwd_nolock _getdcwd_nolock
674#define _tmkdir _mkdir
675#define _trmdir _rmdir
676
677#define _tfullpath _fullpath
678#define _tgetenv getenv
679#define _tmakepath _makepath
680#define _tpgmptr _pgmptr
681#define _get_tpgmptr _get_pgmptr
682#define _tputenv _putenv
683#define _tsearchenv _searchenv
684#define _tsplitpath _splitpath
685
686#ifdef _POSIX_
687#define _tfdopen fdopen
688#else
689#define _tfdopen _fdopen
690#endif
691#define _tfsopen _fsopen
692#define _tfopen fopen
693#define _tfreopen freopen
694#define _tperror perror
695#define _tpopen _popen
696#define _ttempnam _tempnam
697#define _ttmpnam tmpnam
698
699#define _tchmod _chmod
700#define _tcreat _creat
701#define _tfindfirst _findfirst
702#define _tfindfirst32 _findfirst32
703#define _tfindfirst64 _findfirst64
704#define _tfindfirsti64 _findfirsti64
705#define _tfindfirst32i64 _findfirst32i64
706#define _tfindfirst64i32 _findfirst64i32
707#define _tfindnext _findnext
708#define _tfindnext32 _findnext32
709#define _tfindnext64 _findnext64
710#define _tfindnexti64 _findnexti64
711#define _tfindnext32i64 _findnext32i64
712#define _tfindnext64i32 _findnext64i32
713#define _tmktemp _mktemp
714
715#ifdef _POSIX_
716#define _topen open
717#define _taccess access
718#else
719#define _topen _open
720#define _taccess _access
721#endif
722
723#define _tremove remove
724#define _trename rename
725#define _tsopen _sopen
726#define _tunlink _unlink
727
728#define _tfinddata_t _finddata_t
729#define _tfinddata32_t _finddata32_t
730#define _tfinddata64_t __finddata64_t
731#define _tfinddatai64_t _finddatai64_t
732#define _tfinddata32i64_t _finddata32i64_t
733#define _tfinddata64i32_t _finddata64i32_t
734
735#define _istascii __isascii
736#define _istcntrl iscntrl
737#define _istcntrl_l _iscntrl_l
738#define _istxdigit isxdigit
739#define _istxdigit_l _isxdigit_l
740
741#define _tstat _stat
742#define _tstat32 _stat32
743#define _tstat32i64 _stat32i64
744#define _tstat64 _stat64
745#define _tstat64i32 _stat64i32
746#define _tstati64 _stati64
747
748#define _tsetlocale setlocale
749
750#endif /* __CYGWIN__ */
751
752#ifdef _MBCS
753
754#ifdef __cplusplus
755}
756#endif
757
758#ifndef __CYGWIN__
759
760#include <mbstring.h>
761
762#ifdef __cplusplus
763extern "C" {
764#endif
765
766#ifndef __TCHAR_DEFINED
767  typedef char _TCHAR;
768  typedef signed char _TSCHAR;
769  typedef unsigned char _TUCHAR;
770  typedef unsigned char _TXCHAR;
771  typedef unsigned int _TINT;
772#define __TCHAR_DEFINED
773#endif
774
775#ifndef NO_OLDNAMES
776#ifndef _TCHAR_DEFINED
777#define _TCHAR_DEFINED
778  typedef char TCHAR,*PTCHAR;
779  typedef unsigned char TBYTE,*PTBYTE;
780#endif
781#endif
782
783#ifdef _MB_MAP_DIRECT
784
785#define _tcschr _mbschr
786#define _tcscspn _mbscspn
787#define _tcsncat _mbsnbcat
788#define _tcsncat_l _mbsnbcat_l
789#define _tcsncpy _mbsnbcpy
790#define _tcsncpy_l _mbsnbcpy_l
791#define _tcspbrk _mbspbrk
792#define _tcsrchr _mbsrchr
793#define _tcsspn _mbsspn
794#define _tcsstr _mbsstr
795#define _tcstok _mbstok
796#define _tcstok_l _mbstok_l
797
798#define _tcsnset _mbsnbset
799#define _tcsnset_l _mbsnbset_l
800#define _tcsrev _mbsrev
801#define _tcsset _mbsset
802#define _tcsset_l _mbsset_l
803
804#define _tcscmp _mbscmp
805#define _tcsicmp _mbsicmp
806#define _tcsicmp_l _mbsicmp_l
807#define _tcsnccmp _mbsncmp
808#define _tcsncmp _mbsnbcmp
809#define _tcsncicmp _mbsnicmp
810#define _tcsncicmp_l _mbsnicmp_l
811#define _tcsnicmp _mbsnbicmp
812#define _tcsnicmp_l _mbsnbicmp_l
813
814#define _tcscoll _mbscoll
815#define _tcscoll_l _mbscoll_l
816#define _tcsicoll _mbsicoll
817#define _tcsicoll_l _mbsicoll_l
818#define _tcsnccoll _mbsncoll
819#define _tcsnccoll_l _mbsncoll_l
820#define _tcsncoll _mbsnbcoll
821#define _tcsncoll_l _mbsnbcoll_l
822#define _tcsncicoll _mbsnicoll
823#define _tcsncicoll_l _mbsnicoll_l
824#define _tcsnicoll _mbsnbicoll
825#define _tcsnicoll_l _mbsnbicoll_l
826
827#define _tcsclen _mbslen
828#define _tcscnlen _mbsnlen
829#define _tcsclen_l _mbslen_l
830#define _tcscnlen_l _mbsnlen_l
831#define _tcsnccat _mbsncat
832#define _tcsnccat_l _mbsncat_l
833#define _tcsnccpy _mbsncpy
834#define _tcsnccpy_l _mbsncpy_l
835#define _tcsncset _mbsnset
836#define _tcsncset_l _mbsnset_l
837
838#define _tcsdec _mbsdec
839#define _tcsinc _mbsinc
840#define _tcsnbcnt _mbsnbcnt
841#define _tcsnccnt _mbsnccnt
842#define _tcsnextc _mbsnextc
843#define _tcsninc _mbsninc
844#define _tcsspnp _mbsspnp
845
846#define _tcslwr _mbslwr
847#define _tcslwr_l _mbslwr_l
848#define _tcsupr _mbsupr
849#define _tcsupr_l _mbsupr_l
850
851#define _tclen _mbclen
852#define _tccpy _mbccpy
853#define _tccpy_l _mbccpy_l
854#else
855
856  _CRTIMP _CONST_RETURN char *__cdecl _tcschr(const char *_Str,unsigned int _Val);
857  _CRTIMP size_t __cdecl _tcscspn(const char *_Str,const char *_Control);
858  _CRTIMP char *__cdecl _tcsncat(char *_Dst,const char *_Src,size_t _MaxCount);
859  _CRTIMP char *__cdecl _tcsncat_l(char *_Dst,const char *_Src,size_t _MaxCount,_locale_t _Locale);
860  _CRTIMP char *__cdecl _tcsncpy(char *_Dst,const char *_Src,size_t _MaxCount);
861  _CRTIMP char *__cdecl _tcsncpy_l(char *_Dst,const char *_Src,size_t _MaxCount,_locale_t _Locale);
862  _CRTIMP _CONST_RETURN char *__cdecl _tcspbrk(const char *_Str,const char *_Control);
863  _CRTIMP _CONST_RETURN char *__cdecl _tcsrchr(const char *_Str,unsigned int _Ch);
864  _CRTIMP size_t __cdecl _tcsspn(const char *_Str,const char *_Control);
865  _CRTIMP _CONST_RETURN char *__cdecl _tcsstr(const char *_Str,const char *_Substr);
866  _CRTIMP char *__cdecl _tcstok(char *_Str,const char *_Delim);
867  _CRTIMP char *__cdecl _tcstok_l(char *_Str,const char *_Delim,_locale_t _Locale);
868  _CRTIMP char *__cdecl _tcsnset(char *_Str,unsigned int _Val,size_t _MaxCount);
869  _CRTIMP char *__cdecl _tcsrev(char *_Str);
870  _CRTIMP char *__cdecl _tcsset(char *_Str,unsigned int _Val);
871  _CRTIMP char *__cdecl _tcsset_l(char *_Str,unsigned int _Val,_locale_t _Locale);
872  _CRTIMP int __cdecl _tcscmp(const char *_Str1,const char *_Str);
873  _CRTIMP int __cdecl _tcsicmp(const char *_Str1,const char *_Str2);
874  _CRTIMP int __cdecl _tcsicmp_l(const char *_Str1,const char *_Str2,_locale_t _Locale);
875  _CRTIMP int __cdecl _tcsnccmp(const char *_Str1,const char *_Str2,size_t _MaxCount);
876  _CRTIMP int __cdecl _tcsncmp(const char *_Str1,const char *_Str2,size_t _MaxCount);
877  _CRTIMP int __cdecl _tcsncicmp(const char *_Str1,const char *_Str2,size_t _MaxCount);
878  _CRTIMP int __cdecl _tcsncicmp_l(const char *_Str1,const char *_Str2,size_t _MaxCount,_locale_t _Locale);
879  _CRTIMP int __cdecl _tcsnicmp(const char *_Str1,const char *_Str2,size_t _MaxCount);
880  _CRTIMP int __cdecl _tcsnicmp_l(const char *_Str1,const char *_Str2,size_t _MaxCount,_locale_t _Locale);
881  _CRTIMP int __cdecl _tcscoll(const char *_Str1,const char *_Str2);
882  _CRTIMP int __cdecl _tcscoll_l(const char *_Str1,const char *_Str2,_locale_t _Locale);
883  _CRTIMP int __cdecl _tcsicoll(const char *_Str1,const char *_Str2);
884  _CRTIMP int __cdecl _tcsicoll_l(const char *_Str1,const char *_Str2,_locale_t _Locale);
885  _CRTIMP int __cdecl _tcsnccoll(const char *_Str1,const char *_Str2,size_t _MaxCount);
886  _CRTIMP int __cdecl _tcsnccoll_l(const char *_Str1,const char *_Str2,size_t _MaxCount,_locale_t _Locale);
887  _CRTIMP int __cdecl _tcsncoll(const char *_Str1,const char *_Str2,size_t _MaxCount);
888  _CRTIMP int __cdecl _tcsncoll_l(const char *_Str1,const char *_Str2,size_t _MaxCount,_locale_t _Locale);
889  _CRTIMP int __cdecl _tcsncicoll(const char *_Str1,const char *_Str2,size_t _MaxCount);
890  _CRTIMP int __cdecl _tcsncicoll_l(const char *_Str1,const char *_Str2,size_t _MaxCount,_locale_t _Locale);
891  _CRTIMP int __cdecl _tcsnicoll(const char *_Str1,const char *_Str2,size_t _MaxCount);
892  _CRTIMP int __cdecl _tcsnicoll_l(const char *_Str1,const char *_Str2,size_t _MaxCount,_locale_t _Locale);
893  _CRTIMP size_t __cdecl _tcsclen(const char *_Str);
894  _CRTIMP size_t __cdecl _tcscnlen(const char *_Str,size_t _MaxCount);
895  _CRTIMP size_t __cdecl _tcsclen_l(const char *_Str,_locale_t _Locale);
896  _CRTIMP size_t __cdecl _tcscnlen_l(const char *_Str,size_t _MaxCount,_locale_t _Locale);
897  _CRTIMP char *__cdecl _tcsnccat(char *_Dst,const char *_Src,size_t _MaxCount);
898  _CRTIMP char *__cdecl _tcsnccat_l(char *_Dst,const char *_Src,size_t _MaxCount,_locale_t _Locale);
899  _CRTIMP char *__cdecl _tcsnccpy(char *_Dst,const char *_Src,size_t _MaxCount);
900  _CRTIMP char *__cdecl _tcsnccpy_l(char *_Dst,const char *_Src,size_t _MaxCount,_locale_t _Locale);
901  _CRTIMP char *__cdecl _tcsncset(char *_Str,unsigned int _Val,size_t _MaxCount);
902  _CRTIMP char *__cdecl _tcsdec(const char *_Start,const char *_Pos);
903  _CRTIMP char *__cdecl _tcsinc(const char *_Ptr);
904  _CRTIMP size_t __cdecl _tcsnbcnt(const char *_Str,size_t _MaxCount);
905  _CRTIMP size_t __cdecl _tcsnccnt(const char *_Str,size_t _MaxCount);
906  _CRTIMP unsigned int __cdecl _tcsnextc (const char *_Str);
907  _CRTIMP char *__cdecl _tcsninc(const char *_Ptr,size_t _Count);
908  _CRTIMP char *__cdecl _tcsspnp(const char *_Str1,const char *_Str2);
909  _CRTIMP char *__cdecl _tcslwr(char *_Str);
910  _CRTIMP char *__cdecl _tcslwr_l(char *_Str,_locale_t _Locale);
911  _CRTIMP char *__cdecl _tcsupr(char *_Str);
912  _CRTIMP char *__cdecl _tcsupr_l(char *_Str,_locale_t _Locale);
913  _CRTIMP size_t __cdecl _tclen(const char *_Str);
914  _CRTIMP void __cdecl _tccpy(char *_DstCh,const char *_SrcCh);
915
916#ifdef __cplusplus
917#ifndef _CPP_TCHAR_INLINES_DEFINED
918#define _CPP_TCHAR_INLINES_DEFINED
919  extern "C++" {
920    extern inline char *__cdecl _tcschr(char *_S,unsigned int _C) { return ((char *)_tcschr((const char *)_S,_C)); }
921    extern inline char *__cdecl _tcspbrk(char *_S,const char *_P) { return ((char *)_tcspbrk((const char *)_S,_P)); }
922    extern inline char *__cdecl _tcsrchr(char *_S,unsigned int _C) { return ((char *)_tcsrchr((const char *)_S,_C)); }
923    extern inline char *__cdecl _tcsstr(char *_S,const char *_P) { return ((char *)_tcsstr((const char *)_S,_P)); }
924  }
925#endif
926#endif
927#endif
928
929#define _tccmp(_cp1,_cp2) _tcsnccmp(_cp1,_cp2,1)
930
931#define _istalnum _ismbcalnum
932#define _istalnum_l _ismbcalnum_l
933#define _istalpha _ismbcalpha
934#define _istalpha_l _ismbcalpha_l
935#define _istdigit _ismbcdigit
936#define _istdigit_l _ismbcdigit_l
937#define _istgraph _ismbcgraph
938#define _istgraph_l _ismbcgraph_l
939#define _istlegal _ismbclegal
940#define _istlegal_l _ismbclegal_l
941#define _istlower _ismbclower
942#define _istlower_l _ismbclower_l
943#define _istprint _ismbcprint
944#define _istprint_l _ismbcprint_l
945#define _istpunct _ismbcpunct
946#define _istpunct_l _ismbcpunct_l
947#define _istspace _ismbcspace
948#define _istspace_l _ismbcspace_l
949#define _istupper _ismbcupper
950#define _istupper_l _ismbcupper_l
951
952#define _totupper _mbctoupper
953#define _totupper_l _mbctoupper_l
954#define _totlower _mbctolower
955#define _totlower_l _mbctolower_l
956
957#define _istlead _ismbblead
958#define _istleadbyte isleadbyte
959#define _istleadbyte_l _isleadbyte_l
960
961#endif /* __CYGWIN__ */
962
963#else
964
965#ifndef __TCHAR_DEFINED
966#define __TCHAR_DEFINED
967  typedef char _TCHAR;
968  typedef signed char _TSCHAR;
969  typedef unsigned char _TUCHAR;
970  typedef char _TXCHAR;
971  typedef int _TINT;
972#endif
973
974#ifndef NO_OLDNAMES
975#ifndef _TCHAR_DEFINED
976#define _TCHAR_DEFINED
977  typedef char TCHAR,*PTCHAR;
978  typedef unsigned char TBYTE,*PTBYTE;
979#endif
980#endif
981
982#ifndef __CYGWIN__
983
984#define _tcschr strchr
985#define _tcscspn strcspn
986#define _tcsncat strncat
987#define _tcsncat_l _strncat_l
988#define _tcsncpy strncpy
989#define _tcsncpy_l _strncpy_l
990#define _tcspbrk strpbrk
991#define _tcsrchr strrchr
992#define _tcsspn strspn
993#define _tcsstr strstr
994#define _tcstok strtok
995#define _tcstok_l _strtok_l
996
997#define _tcsnset _strnset
998#define _tcsnset_l _strnset_l
999#define _tcsrev _strrev
1000#define _tcsset _strset
1001
1002#define _tcscmp strcmp
1003#define _tcsicmp _stricmp
1004#define _tcsicmp_l _stricmp_l
1005#define _tcsnccmp strncmp
1006#define _tcsncmp strncmp
1007#define _tcsncicmp _strnicmp
1008#define _tcsncicmp_l _strnicmp_l
1009#define _tcsnicmp _strnicmp
1010#define _tcsnicmp_l _strnicmp_l
1011
1012#define _tcscoll strcoll
1013#define _tcscoll_l _strcoll_l
1014#define _tcsicoll _stricoll
1015#define _tcsicoll_l _stricoll_l
1016#define _tcsnccoll _strncoll
1017#define _tcsnccoll_l _strncoll_l
1018#define _tcsncoll _strncoll
1019#define _tcsncoll_l _strncoll_l
1020#define _tcsncicoll _strnicoll
1021#define _tcsncicoll_l _strnicoll_l
1022#define _tcsnicoll _strnicoll
1023#define _tcsnicoll_l _strnicoll_l
1024
1025#define _tcsclen strlen
1026#define _tcscnlen strnlen
1027#define _tcsclen_l(_String,_Locale) strlen(_String)
1028#define _tcscnlen_l(_String,_Max_count,_Locale) strnlen_l((_String),(_Max_count))
1029#define _tcsnccat strncat
1030#define _tcsnccat_l _strncat_l
1031#define _tcsnccpy strncpy
1032#define _tcsnccpy_l _strncpy_l
1033#define _tcsncset _strnset
1034
1035#define _tcsdec _strdec
1036#define _tcsinc _strinc
1037#define _tcsnbcnt _strncnt
1038#define _tcsnccnt _strncnt
1039#define _tcsnextc _strnextc
1040#define _tcsninc _strninc
1041#define _tcsspnp _strspnp
1042
1043#define _tcslwr _strlwr
1044#define _tcslwr_l _strlwr_l
1045#define _tcsupr _strupr
1046#define _tcsupr_l _strupr_l
1047#define _tcsxfrm strxfrm
1048#define _tcsxfrm_l _strxfrm_l
1049
1050#define _istlead(_Char) (0)
1051#define _istleadbyte(_Char) (0)
1052#define _istleadbyte_l(_Char,_Locale) (0)
1053
1054#define _tclen(_pc) (1)
1055#define _tccpy(_pc1,_cpc2) (*(_pc1) = *(_cpc2))
1056#define _tccmp(_cpc1,_cpc2) (((unsigned char)*(_cpc1))-((unsigned char)*(_cpc2)))
1057
1058  /* dirent structures and functions */
1059#define _tdirent	dirent
1060#define _TDIR 		DIR
1061#define _topendir	opendir
1062#define _tclosedir	closedir
1063#define _treaddir	readdir
1064#define _trewinddir	rewinddir
1065#define _ttelldir	telldir
1066#define _tseekdir	seekdir
1067
1068#define _istalnum isalnum
1069#define _istalnum_l _isalnum_l
1070#define _istalpha isalpha
1071#define _istalpha_l _isalpha_l
1072#define _istdigit isdigit
1073#define _istdigit_l _isdigit_l
1074#define _istgraph isgraph
1075#define _istgraph_l _isgraph_l
1076#define _istlower islower
1077#define _istlower_l _islower_l
1078#define _istprint isprint
1079#define _istprint_l _isprint_l
1080#define _istpunct ispunct
1081#define _istpunct_l _ispunct_l
1082#define _istspace isspace
1083#define _istspace_l _isspace_l
1084#define _istupper isupper
1085#define _istupper_l _isupper_l
1086
1087#define _totupper toupper
1088#define _totupper_l _toupper_l
1089#define _totlower tolower
1090#define _totlower_l _tolower_l
1091
1092#define _istlegal(_c) (1)
1093
1094#ifndef NULL
1095#ifdef __cplusplus
1096#ifndef _WIN64
1097#define NULL 0
1098#else
1099#define NULL 0LL
1100#endif  /* W64 */
1101#else
1102#define NULL ((void *)0)
1103#endif
1104#endif
1105
1106#define _strdec(_cpc1,_cpc2) ((_cpc1)>=(_cpc2) ? NULL : (_cpc2)-1)
1107#define _strinc(_pc) ((_pc)+1)
1108#define _strnextc(_cpc) ((unsigned int) *(const unsigned char *)(_cpc))
1109#define _strninc(_pc,_sz) (((_pc)+(_sz)))
1110  _CRTIMP size_t __cdecl __strncnt(const char *_Str,size_t _Cnt);
1111#define _strncnt(_cpc,_sz) (__strncnt(_cpc,_sz))
1112#define _strspnp(_cpc1,_cpc2) (!_cpc1 ? NULL : ((*((_cpc1)+strspn(_cpc1,_cpc2))) ? ((_cpc1)+strspn(_cpc1,_cpc2)) : NULL))
1113
1114#define _strncpy_l(_Destination,_Source,_Count,_Locale) (strncpy(_Destination,_Source,_Count))
1115#define _strncat_l(_Destination,_Source,_Count,_Locale) (strncat(_Destination,_Source,_Count))
1116#define _strtok_l(_String,_Delimiters,_Locale) (strtok(_String,_Delimiters))
1117#define _strnset_l(_Destination,_Value,_Count,_Locale) (_strnset(_Destination,_Value,_Count))
1118#define _strset_l(_Destination,_Value,_Locale) (_strset(_Destination,_Value))
1119#endif
1120#endif
1121
1122#endif /* __CYGWIN__ */
1123
1124#define _T(x) __T(x)
1125#define _TEXT(x) __T(x)
1126
1127#ifdef __cplusplus
1128}
1129#endif
1130
1131#ifndef __CYGWIN__
1132#include <sec_api/tchar_s.h>
1133#endif /* __CYGWIN__ */
1134#endif
1135