xref: /reactos/sdk/include/ucrt/tchar.h (revision 04e0dc4a)
1 /***
2 *tchar.h - definitions for generic international text functions
3 *
4 *       Copyright (c) Microsoft Corporation. All rights reserved.
5 *
6 *Purpose:
7 *       Definitions for generic international functions, mostly defines
8 *       which map string/formatted-io/ctype functions to char, wchar_t, or
9 *       MBCS versions.  To be used for compatibility between single-byte,
10 *       multi-byte and Unicode text models.
11 *
12 *       [Public]
13 *
14 ****/
15 
16 #pragma once
17 #ifndef _INC_TCHAR // include guard for 3rd party interop
18 #define _INC_TCHAR
19 
20 #include <corecrt.h>
21 
22 #pragma warning(push)
23 #pragma warning(disable: _UCRT_DISABLED_WARNINGS)
24 _UCRT_DISABLE_CLANG_WARNINGS
25 
26 /* Notes */
27 
28 /* There is no:
29  *      _tcscat_l
30  *      _tcscpy_l
31  * because mbscat and mbscpy just behave like strcat and strcpy,
32  * so no special locale-specific behavior is needed.
33  */
34 
35 /* Functions like:
36  *      _strncat_l
37  *      _strncat_s_l
38  * are only available if ANSI is defined (i.e. no _UNICODE nor _MBCS),
39  * because these functions are only accessible through the _tcs macros.
40  */
41 
42 #ifdef __cplusplus
43 extern "C" {
44 #endif  /* __cplusplus */
45 
46 #ifndef _CRT_FAR_MAPPINGS_NO_DEPRECATE
47 /*
48 Long ago, these f prefix text functions referred to handling of text in segmented architectures. Ever since the move
49 to Win32 they have been obsolete names, but we kept them around as aliases. Now that we have a deprecation
50 mechanism we can warn about them. You should switch to the identical function without the f prefix.
51 */
52 #pragma deprecated("_ftcscat")
53 #pragma deprecated("_ftcschr")
54 #pragma deprecated("_ftcscpy")
55 #pragma deprecated("_ftcscspn")
56 #pragma deprecated("_ftcslen")
57 #pragma deprecated("_ftcsncat")
58 #pragma deprecated("_ftcsncpy")
59 #pragma deprecated("_ftcspbrk")
60 #pragma deprecated("_ftcsrchr")
61 #pragma deprecated("_ftcsspn")
62 #pragma deprecated("_ftcsstr")
63 #pragma deprecated("_ftcstok")
64 #pragma deprecated("_ftcsdup")
65 #pragma deprecated("_ftcsnset")
66 #pragma deprecated("_ftcsrev")
67 #pragma deprecated("_ftcsset")
68 #pragma deprecated("_ftcscmp")
69 #pragma deprecated("_ftcsicmp")
70 #pragma deprecated("_ftcsnccmp")
71 #pragma deprecated("_ftcsncmp")
72 #pragma deprecated("_ftcsncicmp")
73 #pragma deprecated("_ftcsnicmp")
74 #pragma deprecated("_ftcscoll")
75 #pragma deprecated("_ftcsicoll")
76 #pragma deprecated("_ftcsnccoll")
77 #pragma deprecated("_ftcsncoll")
78 #pragma deprecated("_ftcsncicoll")
79 #pragma deprecated("_ftcsnicoll")
80 #pragma deprecated("_ftcsclen")
81 #pragma deprecated("_ftcsnccat")
82 #pragma deprecated("_ftcsnccpy")
83 #pragma deprecated("_ftcsncset")
84 #pragma deprecated("_ftcsdec")
85 #pragma deprecated("_ftcsinc")
86 #pragma deprecated("_ftcsnbcnt")
87 #pragma deprecated("_ftcsnccnt")
88 #pragma deprecated("_ftcsnextc")
89 #pragma deprecated("_ftcsninc")
90 #pragma deprecated("_ftcsspnp")
91 #pragma deprecated("_ftcslwr")
92 #pragma deprecated("_ftcsupr")
93 #pragma deprecated("_ftclen")
94 #pragma deprecated("_ftccpy")
95 #pragma deprecated("_ftccmp")
96 #endif  /* _CRT_FAR_MAPPINGS_NO_DEPRECATE */
97 
98 #define _ftcscat    _tcscat
99 #define _ftcschr    _tcschr
100 #define _ftcscpy    _tcscpy
101 #define _ftcscspn   _tcscspn
102 #define _ftcslen    _tcslen
103 #define _ftcsncat   _tcsncat
104 #define _ftcsncpy   _tcsncpy
105 #define _ftcspbrk   _tcspbrk
106 #define _ftcsrchr   _tcsrchr
107 #define _ftcsspn    _tcsspn
108 #define _ftcsstr    _tcsstr
109 #define _ftcstok    _tcstok
110 
111 #define _ftcsdup    _tcsdup
112 #define _ftcsnset   _tcsnset
113 #define _ftcsrev    _tcsrev
114 #define _ftcsset    _tcsset
115 
116 #define _ftcscmp      _tcscmp
117 #define _ftcsicmp     _tcsicmp
118 #define _ftcsnccmp    _tcsnccmp
119 #define _ftcsncmp     _tcsncmp
120 #define _ftcsncicmp   _tcsncicmp
121 #define _ftcsnicmp    _tcsnicmp
122 
123 #define _ftcscoll     _tcscoll
124 #define _ftcsicoll    _tcsicoll
125 #define _ftcsnccoll   _tcsnccoll
126 #define _ftcsncoll    _tcsncoll
127 #define _ftcsncicoll  _tcsncicoll
128 #define _ftcsnicoll   _tcsnicoll
129 
130 /* Redundant "logical-character" mappings */
131 
132 #define _ftcsclen   _tcsclen
133 #define _ftcsnccat  _tcsnccat
134 #define _ftcsnccpy  _tcsnccpy
135 #define _ftcsncset  _tcsncset
136 
137 #define _ftcsdec    _tcsdec
138 #define _ftcsinc    _tcsinc
139 #define _ftcsnbcnt  _tcsnbcnt
140 #define _ftcsnccnt  _tcsnccnt
141 #define _ftcsnextc  _tcsnextc
142 #define _ftcsninc   _tcsninc
143 #define _ftcsspnp   _tcsspnp
144 
145 #define _ftcslwr    _tcslwr
146 #define _ftcsupr    _tcsupr
147 
148 #define _ftclen     _tclen
149 #define _ftccpy     _tccpy
150 #define _ftccmp     _tccmp
151 
152 #ifdef _UNICODE
153 
154 #ifdef __cplusplus
155 }   /* ... extern "C" */
156 #endif  /* __cplusplus */
157 
158 /* ++++++++++++++++++++ UNICODE ++++++++++++++++++++ */
159 
160 #include <wchar.h>
161 
162 #ifdef __cplusplus
163 extern "C" {
164 #endif  /* __cplusplus */
165 
166 #ifndef __TCHAR_DEFINED
167 typedef wchar_t     _TCHAR;
168 typedef wchar_t     _TSCHAR;
169 typedef wchar_t     _TUCHAR;
170 typedef wchar_t     _TXCHAR;
171 typedef wint_t      _TINT;
172 #define __TCHAR_DEFINED
173 #endif  /* __TCHAR_DEFINED */
174 
175 #if defined(_CRT_INTERNAL_NONSTDC_NAMES) && _CRT_INTERNAL_NONSTDC_NAMES
176 #ifndef _TCHAR_DEFINED
177 typedef wchar_t     TCHAR;
178 typedef wchar_t *   PTCHAR;
179 typedef wchar_t     TBYTE;
180 typedef wchar_t *   PTBYTE;
181 #define _TCHAR_DEFINED
182 #endif  /* _TCHAR_DEFINED */
183 #endif  /* _CRT_INTERNAL_NONSTDC_NAMES */
184 
185 #define _TEOF       WEOF
186 
187 #define __T(x)      L ## x
188 
189 
190 /* Program */
191 
192 #define _tmain      wmain
193 #define _tWinMain   wWinMain
194 #define _tenviron   _wenviron
195 #define __targv     __wargv
196 
197 /* Formatted i/o */
198 
199 #define _tprintf        wprintf
200 #define _tprintf_l      _wprintf_l
201 #define _tprintf_s      wprintf_s
202 #define _tprintf_s_l    _wprintf_s_l
203 #define _tprintf_p      _wprintf_p
204 #define _tprintf_p_l    _wprintf_p_l
205 #define _tcprintf       _cwprintf
206 #define _tcprintf_l     _cwprintf_l
207 #define _tcprintf_s     _cwprintf_s
208 #define _tcprintf_s_l   _cwprintf_s_l
209 #define _tcprintf_p     _cwprintf_p
210 #define _tcprintf_p_l   _cwprintf_p_l
211 #define _vtcprintf      _vcwprintf
212 #define _vtcprintf_l    _vcwprintf_l
213 #define _vtcprintf_s    _vcwprintf_s
214 #define _vtcprintf_s_l  _vcwprintf_s_l
215 #define _vtcprintf_p    _vcwprintf_p
216 #define _vtcprintf_p_l  _vcwprintf_p_l
217 #define _ftprintf       fwprintf
218 #define _ftprintf_l     _fwprintf_l
219 #define _ftprintf_s     fwprintf_s
220 #define _ftprintf_s_l   _fwprintf_s_l
221 #define _ftprintf_p     _fwprintf_p
222 #define _ftprintf_p_l   _fwprintf_p_l
223 #define _stprintf       _swprintf
224 #define _stprintf_l     __swprintf_l
225 #define _stprintf_s     swprintf_s
226 #define _stprintf_s_l   _swprintf_s_l
227 #define _stprintf_p     _swprintf_p
228 #define _stprintf_p_l   _swprintf_p_l
229 #define _sctprintf      _scwprintf
230 #define _sctprintf_l    _scwprintf_l
231 #define _sctprintf_p    _scwprintf_p
232 #define _sctprintf_p_l  _scwprintf_p_l
233 #define _sntprintf      _snwprintf
234 #define _sntprintf_l    _snwprintf_l
235 #define _sntprintf_s    _snwprintf_s
236 #define _sntprintf_s_l  _snwprintf_s_l
237 #define _vtprintf       vwprintf
238 #define _vtprintf_l     _vwprintf_l
239 #define _vtprintf_s     vwprintf_s
240 #define _vtprintf_s_l   _vwprintf_s_l
241 #define _vtprintf_p     _vwprintf_p
242 #define _vtprintf_p_l   _vwprintf_p_l
243 #define _vftprintf      vfwprintf
244 #define _vftprintf_l    _vfwprintf_l
245 #define _vftprintf_s    vfwprintf_s
246 #define _vftprintf_s_l  _vfwprintf_s_l
247 #define _vftprintf_p    _vfwprintf_p
248 #define _vftprintf_p_l  _vfwprintf_p_l
249 #define _vstprintf      vswprintf
250 #define _vstprintf_l    _vswprintf_l
251 #define _vstprintf_s    vswprintf_s
252 #define _vstprintf_s_l  _vswprintf_s_l
253 #define _vstprintf_p    _vswprintf_p
254 #define _vstprintf_p_l  _vswprintf_p_l
255 #define _vsctprintf     _vscwprintf
256 #define _vsctprintf_l   _vscwprintf_l
257 #define _vsctprintf_p   _vscwprintf_p
258 #define _vsctprintf_p_l _vscwprintf_p_l
259 #define _vsntprintf     _vsnwprintf
260 #define _vsntprintf_l   _vsnwprintf_l
261 #define _vsntprintf_s   _vsnwprintf_s
262 #define _vsntprintf_s_l _vsnwprintf_s_l
263 
264 #define _tscanf         wscanf
265 #define _tscanf_l       _wscanf_l
266 #define _tscanf_s       wscanf_s
267 #define _tscanf_s_l     _wscanf_s_l
268 #define _tcscanf        _cwscanf
269 #define _tcscanf_l      _cwscanf_l
270 #define _tcscanf_s      _cwscanf_s
271 #define _tcscanf_s_l    _cwscanf_s_l
272 #define _ftscanf        fwscanf
273 #define _ftscanf_l      _fwscanf_l
274 #define _ftscanf_s      fwscanf_s
275 #define _ftscanf_s_l    _fwscanf_s_l
276 #define _stscanf        swscanf
277 #define _stscanf_l      _swscanf_l
278 #define _stscanf_s      swscanf_s
279 #define _stscanf_s_l    _swscanf_s_l
280 #define _sntscanf       _snwscanf
281 #define _sntscanf_l     _snwscanf_l
282 #define _sntscanf_s     _snwscanf_s
283 #define _sntscanf_s_l   _snwscanf_s_l
284 #define _vtscanf        vwscanf
285 #define _vtscanf_s      vwscanf_s
286 #define _vftscanf       vfwscanf
287 #define _vftscanf_s     vfwscanf_s
288 #define _vstscanf       vswscanf
289 #define _vstscanf_s     vswscanf_s
290 
291 
292 /* Unformatted i/o */
293 
294 #define _fgettc          fgetwc
295 #define _fgettc_nolock   _fgetwc_nolock
296 #define _fgettchar       _fgetwchar
297 #define _fgetts          fgetws
298 #define _fputtc          fputwc
299 #define _fputtc_nolock   _fputwc_nolock
300 #define _fputtchar       _fputwchar
301 #define _fputts          fputws
302 #define _cputts          _cputws
303 #define _cgetts_s        _cgetws_s
304 #define _gettc           getwc
305 #define _gettc_nolock    _getwc_nolock
306 #define _gettch          _getwch
307 #define _gettch_nolock   _getwch_nolock
308 #define _gettche         _getwche
309 #define _gettche_nolock  _getwche_nolock
310 #define _gettchar        getwchar
311 #define _gettchar_nolock _getwchar_nolock
312 #define _getts_s         _getws_s
313 #define _puttc           putwc
314 #define _puttc_nolock    _fputwc_nolock
315 #define _puttchar        putwchar
316 #define _puttchar_nolock _putwchar_nolock
317 #define _puttch          _putwch
318 #define _puttch_nolock   _putwch_nolock
319 #define _putts           _putws
320 #define _ungettc         ungetwc
321 #define _ungettc_nolock  _ungetwc_nolock
322 #define _ungettch        _ungetwch
323 #define _ungettch_nolock _ungetwch_nolock
324 
325 
326 /* String conversion functions */
327 
328 #define _tcstod     wcstod
329 #define _tcstof     wcstof
330 #define _tcstol     wcstol
331 #define _tcstold    wcstold
332 #define _tcstoll    wcstoll
333 #define _tcstoul    wcstoul
334 #define _tcstoull   wcstoull
335 #define _tcstoimax  wcstoimax
336 #define _tcstoumax  wcstoumax
337 #define _tcstoi64   _wcstoi64
338 #define _tcstoui64  _wcstoui64
339 #define _ttof       _wtof
340 #define _tstof      _wtof
341 #define _tstol      _wtol
342 #define _tstoll     _wtoll
343 #define _tstoi      _wtoi
344 #define _tstoi64    _wtoi64
345 #define _tcstod_l     _wcstod_l
346 #define _tcstof_l     _wcstof_l
347 #define _tcstol_l     _wcstol_l
348 #define _tcstold_l    _wcstold_l
349 #define _tcstoll_l    _wcstoll_l
350 #define _tcstoul_l    _wcstoul_l
351 #define _tcstoull_l   _wcstoull_l
352 #define _tcstoi64_l   _wcstoi64_l
353 #define _tcstoui64_l  _wcstoui64_l
354 #define _tcstoimax_l  _wcstoimax_l
355 #define _tcstoumax_l  _wcstoumax_l
356 #define _tstof_l      _wtof_l
357 #define _tstol_l      _wtol_l
358 #define _tstoll_l     _wtoll_l
359 #define _tstoi_l      _wtoi_l
360 #define _tstoi64_l    _wtoi64_l
361 
362 #define _itot_s     _itow_s
363 #define _ltot_s     _ltow_s
364 #define _ultot_s    _ultow_s
365 #define _itot       _itow
366 #define _ltot       _ltow
367 #define _ultot      _ultow
368 #define _ttoi       _wtoi
369 #define _ttol       _wtol
370 #define _ttoll      _wtoll
371 
372 #define _ttoi64     _wtoi64
373 #define _i64tot_s   _i64tow_s
374 #define _ui64tot_s  _ui64tow_s
375 #define _i64tot     _i64tow
376 #define _ui64tot    _ui64tow
377 
378 /* String functions */
379 
380 #define _tcscat         wcscat
381 #define _tcscat_s       wcscat_s
382 #define _tcschr         wcschr
383 #define _tcscpy         wcscpy
384 #define _tcscpy_s       wcscpy_s
385 #define _tcscspn        wcscspn
386 #define _tcslen         wcslen
387 #define _tcsnlen        wcsnlen
388 #define _tcsncat        wcsncat
389 #define _tcsncat_s      wcsncat_s
390 #define _tcsncat_l      _wcsncat_l
391 #define _tcsncat_s_l    _wcsncat_s_l
392 #define _tcsncpy        wcsncpy
393 #define _tcsncpy_s      wcsncpy_s
394 #define _tcsncpy_l      _wcsncpy_l
395 #define _tcsncpy_s_l    _wcsncpy_s_l
396 #define _tcspbrk        wcspbrk
397 #define _tcsrchr        wcsrchr
398 #define _tcsspn         wcsspn
399 #define _tcsstr         wcsstr
400 #define _tcstok         _wcstok
401 #define _tcstok_s       wcstok_s
402 #define _tcstok_l       _wcstok_l
403 #define _tcstok_s_l     _wcstok_s_l
404 #define _tcserror       _wcserror
405 #define _tcserror_s     _wcserror_s
406 #define __tcserror      __wcserror
407 #define __tcserror_s    __wcserror_s
408 
409 #define _tcsdup         _wcsdup
410 #define _tcsnset        _wcsnset
411 #define _tcsnset_s      _wcsnset_s
412 #define _tcsnset_l      _wcsnset_l
413 #define _tcsnset_s_l    _wcsnset_s_l
414 #define _tcsrev         _wcsrev
415 #define _tcsset         _wcsset
416 #define _tcsset_s       _wcsset_s
417 #define _tcsset_l       _wcsset_l
418 #define _tcsset_s_l     _wcsset_s_l
419 
420 #define _tcscmp         wcscmp
421 #define _tcsicmp        _wcsicmp
422 #define _tcsicmp_l      _wcsicmp_l
423 #define _tcsnccmp       wcsncmp
424 #define _tcsncmp        wcsncmp
425 #define _tcsncicmp      _wcsnicmp
426 #define _tcsncicmp_l    _wcsnicmp_l
427 #define _tcsnicmp       _wcsnicmp
428 #define _tcsnicmp_l     _wcsnicmp_l
429 
430 #define _tcscoll        wcscoll
431 #define _tcscoll_l      _wcscoll_l
432 #define _tcsicoll       _wcsicoll
433 #define _tcsicoll_l     _wcsicoll_l
434 #define _tcsnccoll      _wcsncoll
435 #define _tcsnccoll_l    _wcsncoll_l
436 #define _tcsncoll       _wcsncoll
437 #define _tcsncoll_l     _wcsncoll_l
438 #define _tcsncicoll     _wcsnicoll
439 #define _tcsncicoll_l   _wcsnicoll_l
440 #define _tcsnicoll      _wcsnicoll
441 #define _tcsnicoll_l    _wcsnicoll_l
442 
443 #ifdef _DEBUG
444 #define _tcsdup_dbg _wcsdup_dbg
445 #endif  /* _DEBUG */
446 
447 /* Execute functions */
448 
449 #define _texecl     _wexecl
450 #define _texecle    _wexecle
451 #define _texeclp    _wexeclp
452 #define _texeclpe   _wexeclpe
453 #define _texecv     _wexecv
454 #define _texecve    _wexecve
455 #define _texecvp    _wexecvp
456 #define _texecvpe   _wexecvpe
457 
458 #define _tspawnl    _wspawnl
459 #define _tspawnle   _wspawnle
460 #define _tspawnlp   _wspawnlp
461 #define _tspawnlpe  _wspawnlpe
462 #define _tspawnv    _wspawnv
463 #define _tspawnve   _wspawnve
464 #define _tspawnvp   _wspawnvp
465 #define _tspawnvp   _wspawnvp
466 #define _tspawnvpe  _wspawnvpe
467 
468 #define _tsystem    _wsystem
469 
470 
471 /* Time functions */
472 
473 #define _tasctime   _wasctime
474 #define _tctime     _wctime
475 #define _tctime32   _wctime32
476 #define _tctime64   _wctime64
477 #define _tstrdate   _wstrdate
478 #define _tstrtime   _wstrtime
479 #define _tutime     _wutime
480 #define _tutime32   _wutime32
481 #define _tutime64   _wutime64
482 #define _tcsftime   wcsftime
483 #define _tcsftime_l _wcsftime_l
484 
485 #define _tasctime_s   _wasctime_s
486 #define _tctime_s     _wctime_s
487 #define _tctime32_s   _wctime32_s
488 #define _tctime64_s   _wctime64_s
489 #define _tstrdate_s   _wstrdate_s
490 #define _tstrtime_s   _wstrtime_s
491 
492 /* Directory functions */
493 
494 #define _tchdir             _wchdir
495 #define _tgetcwd            _wgetcwd
496 #define _tgetdcwd           _wgetdcwd
497 #define _tgetdcwd_nolock    _wgetdcwd_nolock
498 #define _tmkdir             _wmkdir
499 #define _trmdir             _wrmdir
500 
501 #ifdef _DEBUG
502 #define _tgetcwd_dbg        _wgetcwd_dbg
503 #define _tgetdcwd_dbg       _wgetdcwd_dbg
504 #define _tgetdcwd_lk_dbg    _wgetdcwd_lk_dbg
505 #endif  /* _DEBUG */
506 
507 /* Environment/Path functions */
508 
509 #define _tfullpath      _wfullpath
510 #define _tgetenv        _wgetenv
511 #define _tgetenv_s      _wgetenv_s
512 #define _tdupenv_s      _wdupenv_s
513 #define _tmakepath      _wmakepath
514 #define _tmakepath_s    _wmakepath_s
515 #define _tpgmptr        _wpgmptr
516 #define _get_tpgmptr    _get_wpgmptr
517 #define _tputenv        _wputenv
518 #define _tputenv_s      _wputenv_s
519 #define _tsearchenv     _wsearchenv
520 #define _tsearchenv_s   _wsearchenv_s
521 #define _tsplitpath     _wsplitpath
522 #define _tsplitpath_s   _wsplitpath_s
523 
524 #ifdef _DEBUG
525 #define _tfullpath_dbg  _wfullpath_dbg
526 #define _tdupenv_s_dbg  _wdupenv_s_dbg
527 #endif  /* _DEBUG */
528 
529 /* Stdio functions */
530 
531 #define _tfdopen    _wfdopen
532 #define _tfsopen    _wfsopen
533 #define _tfopen     _wfopen
534 #define _tfopen_s   _wfopen_s
535 #define _tfreopen   _wfreopen
536 #define _tfreopen_s _wfreopen_s
537 #define _tperror    _wperror
538 #define _tpopen     _wpopen
539 #define _ttempnam   _wtempnam
540 #define _ttmpnam    _wtmpnam
541 #define _ttmpnam_s  _wtmpnam_s
542 
543 #ifdef _DEBUG
544 #define _ttempnam_dbg   _wtempnam_dbg
545 #endif  /* _DEBUG */
546 
547 
548 /* Io functions */
549 
550 #define _taccess    _waccess
551 #define _taccess_s  _waccess_s
552 #define _tchmod     _wchmod
553 #define _tcreat     _wcreat
554 #define _tfindfirst       _wfindfirst
555 #define _tfindfirst32     _wfindfirst32
556 #define _tfindfirst64     _wfindfirst64
557 #define _tfindfirsti64    _wfindfirsti64
558 #define _tfindfirst32i64  _wfindfirst32i64
559 #define _tfindfirst64i32  _wfindfirst64i32
560 #define _tfindnext        _wfindnext
561 #define _tfindnext32      _wfindnext32
562 #define _tfindnext64      _wfindnext64
563 #define _tfindnexti64     _wfindnexti64
564 #define _tfindnext32i64   _wfindnext32i64
565 #define _tfindnext64i32   _wfindnext64i32
566 #define _tmktemp    _wmktemp
567 #define _tmktemp_s  _wmktemp_s
568 #define _topen      _wopen
569 #define _tremove    _wremove
570 #define _trename    _wrename
571 #define _tsopen     _wsopen
572 #define _tsopen_s   _wsopen_s
573 #define _tunlink    _wunlink
574 
575 #define _tfinddata_t      _wfinddata_t
576 #define _tfinddata32_t    _wfinddata32_t
577 #define _tfinddata64_t    _wfinddata64_t
578 #define _tfinddatai64_t   _wfinddatai64_t
579 #define _tfinddata32i64_t _wfinddata32i64_t
580 #define _tfinddata64i32_t _wfinddata64i32_t
581 
582 
583 /* Stat functions */
584 
585 #define _tstat      _wstat
586 #define _tstat32    _wstat32
587 #define _tstat32i64 _wstat32i64
588 #define _tstat64    _wstat64
589 #define _tstat64i32 _wstat64i32
590 #define _tstati64   _wstati64
591 
592 
593 /* Setlocale functions */
594 
595 #define _tsetlocale _wsetlocale
596 
597 
598 /* Redundant "logical-character" mappings */
599 
600 #define _tcsclen        wcslen
601 #define _tcscnlen       wcsnlen
602 #define _tcsclen_l(_String, _Locale) wcslen(_String)
603 #define _tcscnlen_l(_String, _Max_count, _Locale) wcsnlen((_String), (_Max_count))
604 #define _tcsnccat       wcsncat
605 #define _tcsnccat_s     wcsncat_s
606 #define _tcsnccat_l     _wcsncat_l
607 #define _tcsnccat_s_l   _wcsncat_s_l
608 #define _tcsnccpy       wcsncpy
609 #define _tcsnccpy_s     wcsncpy_s
610 #define _tcsnccpy_l     _wcsncpy_l
611 #define _tcsnccpy_s_l   _wcsncpy_s_l
612 #define _tcsncset       _wcsnset
613 #define _tcsncset_s     _wcsnset_s
614 #define _tcsncset_l     _wcsnset_l
615 #define _tcsncset_s_l   _wcsnset_s_l
616 
617 #define _tcsdec     _wcsdec
618 #define _tcsinc     _wcsinc
619 #define _tcsnbcnt   _wcsncnt
620 #define _tcsnccnt   _wcsncnt
621 #define _tcsnextc   _wcsnextc
622 #define _tcsninc    _wcsninc
623 #define _tcsspnp    _wcsspnp
624 
625 #define _tcslwr     _wcslwr
626 #define _tcslwr_l   _wcslwr_l
627 #define _tcslwr_s   _wcslwr_s
628 #define _tcslwr_s_l _wcslwr_s_l
629 #define _tcsupr     _wcsupr
630 #define _tcsupr_l   _wcsupr_l
631 #define _tcsupr_s   _wcsupr_s
632 #define _tcsupr_s_l _wcsupr_s_l
633 #define _tcsxfrm    wcsxfrm
634 #define _tcsxfrm_l  _wcsxfrm_l
635 
636 
637 #if __STDC__ || defined (_NO_INLINING)
638 #define _tclen(_pc) (1)
639 #define _tccpy(_pc1,_cpc2) ((*(_pc1) = *(_cpc2)))
640 #define _tccpy_l(_pc1,_cpc2,_locale) _tccpy((_pc1),(_cpc2))
641 #define _tccmp(_cpc1,_cpc2) ((*(_cpc1))-(*(_cpc2)))
642 #else  /* __STDC__ || defined (_NO_INLINING) */
_tclen(_In_z_ const wchar_t * _Cpc)643 _Check_return_ __inline size_t __CRTDECL _tclen(_In_z_ const wchar_t *_Cpc)
644 {
645     /* avoid compiler warning */
646     (void)_Cpc;
647     return 1;
648 }
_tccpy(_Out_ wchar_t * _Pc1,_In_z_ const wchar_t * _Cpc2)649 __inline void __CRTDECL _tccpy(_Out_ wchar_t *_Pc1, _In_z_ const wchar_t *_Cpc2) { *_Pc1 = (wchar_t)*_Cpc2; }
_tccpy_l(_Out_ wchar_t * _Pc1,_In_z_ const wchar_t * _Cpc2,_In_opt_ _locale_t _Locale)650 __inline void __CRTDECL _tccpy_l(_Out_ wchar_t *_Pc1, _In_z_ const wchar_t *_Cpc2, _In_opt_ _locale_t _Locale)
651 {
652     _CRT_UNUSED(_Locale);
653     _tccpy(_Pc1, _Cpc2);
654 }
_tccmp(_In_z_ const wchar_t * _Cpc1,_In_z_ const wchar_t * _Cpc2)655 _Check_return_ __inline int __CRTDECL _tccmp(_In_z_ const wchar_t *_Cpc1, _In_z_ const wchar_t *_Cpc2) { return (int) ((*_Cpc1)-(*_Cpc2)); }
656 #endif  /* __STDC__ || defined (_NO_INLINING) */
657 
658 /* ctype functions */
659 
660 #define _istalnum   iswalnum
661 #define _istalnum_l   _iswalnum_l
662 #define _istalpha   iswalpha
663 #define _istalpha_l   _iswalpha_l
664 #define _istascii   iswascii
665 #define _istcntrl   iswcntrl
666 #define _istcntrl_l   _iswcntrl_l
667 #define _istdigit   iswdigit
668 #define _istdigit_l   _iswdigit_l
669 #define _istgraph   iswgraph
670 #define _istgraph_l   _iswgraph_l
671 #define _istlower   iswlower
672 #define _istlower_l   _iswlower_l
673 #define _istprint   iswprint
674 #define _istprint_l   _iswprint_l
675 #define _istpunct   iswpunct
676 #define _istpunct_l   _iswpunct_l
677 #define _istblank   iswblank
678 #define _istblank_l   _iswblank_l
679 #define _istspace   iswspace
680 #define _istspace_l   _iswspace_l
681 #define _istupper   iswupper
682 #define _istupper_l   _iswupper_l
683 #define _istxdigit  iswxdigit
684 #define _istxdigit_l  _iswxdigit_l
685 
686 #define _totupper   towupper
687 #define _totupper_l   _towupper_l
688 #define _totlower   towlower
689 #define _totlower_l   _towlower_l
690 
691 #define _istlegal(_Char)                (1)
692 #define _istlead(_Char)                 (0)
693 #define _istleadbyte(_Char)             (0)
694 #define _istleadbyte_l(_Char, _Locale)  (0)
695 
696 
697 #if __STDC__ || defined _NO_INLINING
698 #define _wcsdec(_cpc1, _cpc2) ((_cpc1)>=(_cpc2) ? NULL : (_cpc2)-1)
699 #define _wcsinc(_pc)    ((_pc)+1)
700 #define _wcsnextc(_cpc) ((unsigned int) *(_cpc))
701 #define _wcsninc(_pc, _sz) (((_pc)+(_sz)))
702 _Check_return_ _ACRTIMP size_t __cdecl __wcsncnt(_In_reads_or_z_(_MaxCount) const wchar_t * _Str, _In_ size_t _MaxCount);
703 #define _wcsncnt(_cpc, _sz) (__wcsncnt(_cpc,_sz))
704 #define _wcsspnp(_cpc1, _cpc2)                                                          (_cpc1==NULL ? NULL : ((*((_cpc1)+wcsspn(_cpc1,_cpc2))) ? ((_cpc1)+wcsspn(_cpc1,_cpc2)) : NULL))
705 #define _wcsncpy_l(_Destination, _Source, _Count, _Locale)                              (wcsncpy(_Destination, _Source, _Count))
706 #if __STDC_WANT_SECURE_LIB__
707 #define _wcsncpy_s_l(_Destination, _Destination_size_chars, _Source, _Count, _Locale)   (wcsncpy_s(_Destination, _Destination_size_chars, _Source, _Count))
708 #endif  /* __STDC_WANT_SECURE_LIB__ */
709 #define _wcsncat_l(_Destination, _Source, _Count, _Locale)                              (wcsncat(_Destination, _Source, _Count))
710 #if __STDC_WANT_SECURE_LIB__
711 #define _wcsncat_s_l(_Destination, _Destination_size_chars, _Source, _Count, _Locale)   (wcsncat_s(_Destination, _Destination_size_chars, _Source, _Count))
712 #endif  /* __STDC_WANT_SECURE_LIB__ */
713 #define _wcstok_l(_String, _Delimiters, _Locale)                                        (_wcstok(_String, _Delimiters))
714 #define _wcstok_s_l(_String, _Delimiters, _Current_position, _Locale)                   (wcstok_s(_String, _Delimiters, _Current_position))
715 #define _wcsnset_l(_Destination, _Value, _Count, _Locale)                               (_wcsnset(_Destination, _Value, _Count))
716 #define _wcsnset_s_l(_Destination, _Destination_size_chars, _Value, _Count, _Locale)    (_wcsnset_s(_Destination, _Destination_size_chars, _Value, _Count))
717 #define _wcsset_l(_Destination, _Value, _Locale)                                        (_wcsset(_Destination, _Value))
718 #define _wcsset_s_l(_Destination, _Destination_size_chars, _Value, _Locale)             (_wcsset_s(_Destination, _Destination_size_chars, _Value))
719 #else  /* __STDC__ || defined (_NO_INLINING) */
_wcsdec(_In_z_ const wchar_t * _Cpc1,_In_z_ const wchar_t * _Cpc2)720 _Check_return_ __inline wchar_t * __CRTDECL _wcsdec(_In_z_ const wchar_t * _Cpc1, _In_z_ const wchar_t * _Cpc2) { return (wchar_t *)((_Cpc1)>=(_Cpc2) ? NULL : ((_Cpc2)-1)); }
_wcsinc(_In_z_ const wchar_t * _Pc)721 _Check_return_ __inline wchar_t * __CRTDECL _wcsinc(_In_z_ const wchar_t * _Pc) { return (wchar_t *)(_Pc+1); }
_wcsnextc(_In_z_ const wchar_t * _Cpc)722 _Check_return_ __inline unsigned int __CRTDECL _wcsnextc(_In_z_ const wchar_t * _Cpc) { return (unsigned int)*_Cpc; }
_wcsninc(_In_z_ const wchar_t * _Pc,_In_ size_t _Sz)723 _Check_return_ __inline wchar_t * __CRTDECL _wcsninc(_In_z_ const wchar_t * _Pc, _In_ size_t _Sz) { return (wchar_t *)(_Pc+_Sz); }
_wcsncnt(_In_reads_or_z_ (_Cnt)const wchar_t * _String,_In_ size_t _Cnt)724 _Check_return_ __inline size_t __CRTDECL _wcsncnt( _In_reads_or_z_(_Cnt) const wchar_t * _String, _In_ size_t _Cnt)
725 {
726         size_t n = _Cnt;
727         wchar_t *cp = (wchar_t *)_String;
728         while (n-- && *cp)
729                 cp++;
730         return _Cnt - n - 1;
731 }
_wcsspnp(_In_z_ const wchar_t * _Cpc1,_In_z_ const wchar_t * _Cpc2)732 _Check_return_ __inline wchar_t * __CRTDECL _wcsspnp
733 (
734     _In_z_ const wchar_t * _Cpc1,
735     _In_z_ const wchar_t * _Cpc2
736 )
737 {
738     return _Cpc1==NULL ? NULL : ((*(_Cpc1 += wcsspn(_Cpc1,_Cpc2))!='\0') ? (wchar_t*)_Cpc1 : NULL);
739 }
740 
741 #if __STDC_WANT_SECURE_LIB__
_wcsncpy_s_l(_Out_writes_z_ (_Destination_size_chars)wchar_t * _Destination,_In_ size_t _Destination_size_chars,_In_z_ const wchar_t * _Source,_In_ size_t _Count,_In_opt_ _locale_t _Locale)742 _Check_return_wat_ __inline errno_t __CRTDECL _wcsncpy_s_l(_Out_writes_z_(_Destination_size_chars) wchar_t *_Destination, _In_ size_t _Destination_size_chars, _In_z_ const wchar_t *_Source, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
743 {
744     _CRT_UNUSED(_Locale);
745     return wcsncpy_s(_Destination, _Destination_size_chars, _Source, _Count);
746 }
747 #endif  /* __STDC_WANT_SECURE_LIB__ */
748 
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t,_wcsncpy_s_l,wchar_t,_Dest,_In_z_ const wchar_t *,_Source,_In_ size_t,_Count,_In_opt_ _locale_t,_Locale)749 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t, _wcsncpy_s_l, wchar_t, _Dest, _In_z_ const wchar_t *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
750 
751 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(wchar_t *, __RETURN_POLICY_DST, _wcsncpy_l, _wcsncpy_s_l, _Out_writes_z_(_Size) wchar_t, _Out_writes_(_Count) wchar_t, _Dst, _In_z_ const wchar_t *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
752 {
753     _CRT_UNUSED(_Locale);
754 #pragma warning(suppress: 6054) // String may not be zero-terminated
755     return wcsncpy(_Dst, _Source, _Count);
756 }
757 
__DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(wchar_t *,__RETURN_POLICY_DST,_wcsncpy_l,_wcsncpy_s_l,_Out_writes_z_ (_Size)wchar_t,_Out_writes_ (_Count),wchar_t,_Dst,_In_z_ const wchar_t *,_Source,_In_ size_t,_Count,_In_opt_ _locale_t,_Locale)758 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(wchar_t *, __RETURN_POLICY_DST, _wcsncpy_l, _wcsncpy_s_l, _Out_writes_z_(_Size) wchar_t, _Out_writes_(_Count), wchar_t, _Dst, _In_z_ const wchar_t *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
759 
760 #if __STDC_WANT_SECURE_LIB__
761 _Check_return_wat_ __inline errno_t __CRTDECL _wcsncat_s_l(_Inout_updates_z_(_Destination_size_chars) wchar_t *_Destination, _In_ size_t _Destination_size_chars, _In_z_ const wchar_t *_Source, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
762 {
763     _CRT_UNUSED(_Locale);
764     return wcsncat_s(_Destination, _Destination_size_chars, _Source, _Count);
765 }
766 #endif  /* __STDC_WANT_SECURE_LIB__ */
767 
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t,_wcsncat_s_l,wchar_t,_Dest,_In_z_ const wchar_t *,_Source,_In_ size_t,_Count,_In_opt_ _locale_t,_Locale)768 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t, _wcsncat_s_l, wchar_t, _Dest, _In_z_ const wchar_t *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
769 
770 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(wchar_t *, __RETURN_POLICY_DST, _wcsncat_l, _wcsncat_s_l, _Inout_updates_z_(_Size) wchar_t, _Inout_z_ wchar_t, _Dst, _In_z_ const wchar_t *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
771 {
772     _CRT_UNUSED(_Locale);
773 // C6054: String may not be zero-terminated
774 // C6059: Incorrect length parameter in call
775 #pragma warning(suppress: 6054 6059)
776     return wcsncat(_Dst, _Source, _Count);
777 }
778 
__DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(wchar_t *,__RETURN_POLICY_DST,_wcsncat_l,_wcsncat_s_l,_Inout_updates_z_ (_Size)wchar_t,_Inout_z_,wchar_t,_Dst,_In_z_ const wchar_t *,_Source,_In_ size_t,_Count,_In_opt_ _locale_t,_Locale)779 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(wchar_t *, __RETURN_POLICY_DST, _wcsncat_l, _wcsncat_s_l, _Inout_updates_z_(_Size) wchar_t, _Inout_z_, wchar_t, _Dst, _In_z_ const wchar_t *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
780 
781 _CRT_INSECURE_DEPRECATE(_wcstok_s_l) __inline wchar_t * _wcstok_l(_Inout_opt_z_ wchar_t * _String, _In_z_ const wchar_t * _Delimiters, _In_opt_ _locale_t _Locale)
782 {
783     _CRT_UNUSED(_Locale);
784 #ifdef _CRT_NON_CONFORMING_WCSTOK
785         return wcstok(_String,_Delimiters);
786 #else
787         return wcstok(_String,_Delimiters,0);
788 #endif
789 }
790 
791 #if __STDC_WANT_SECURE_LIB__
_wcstok_s_l(_Inout_opt_z_ wchar_t * _String,_In_z_ const wchar_t * _Delimiters,_Inout_ _Deref_prepost_opt_z_ wchar_t ** _Current_position,_In_opt_ _locale_t _Locale)792 __inline wchar_t * _wcstok_s_l(_Inout_opt_z_ wchar_t * _String, _In_z_ const wchar_t * _Delimiters, _Inout_ _Deref_prepost_opt_z_ wchar_t **_Current_position, _In_opt_ _locale_t _Locale)
793 {
794     _CRT_UNUSED(_Locale);
795     return wcstok_s(_String, _Delimiters, _Current_position);
796 }
797 #endif /* __STDC_WANT_SECURE_LIB__ */
798 
_wcsnset_s_l(_Inout_updates_z_ (_Destination_size_chars)wchar_t * _Destination,_In_ size_t _Destination_size_chars,_In_ wchar_t _Value,_In_ size_t _Count,_In_opt_ _locale_t _Locale)799 _Check_return_wat_ __inline errno_t _wcsnset_s_l(_Inout_updates_z_(_Destination_size_chars) wchar_t * _Destination, _In_ size_t _Destination_size_chars, _In_ wchar_t _Value, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
800 {
801     _CRT_UNUSED(_Locale);
802     return _wcsnset_s(_Destination, _Destination_size_chars, _Value, _Count);
803 }
804 
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t,_wcsnset_s_l,_Prepost_z_ wchar_t,_Dest,_In_ wchar_t,_Value,_In_ size_t,_Count,_In_opt_ _locale_t,_Locale)805 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t, _wcsnset_s_l, _Prepost_z_ wchar_t, _Dest, _In_ wchar_t, _Value, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
806 
807 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(wchar_t *, __RETURN_POLICY_DST, _wcsnset_l, _wcsnset_s_l, _Inout_updates_z_(_Size) wchar_t, _Inout_updates_z_(_MaxCount) wchar_t, _Dst, _In_ wchar_t, _Value, _In_ size_t, _MaxCount, _In_opt_ _locale_t, _Locale)
808 {
809     _CRT_UNUSED(_Locale);
810     return _wcsnset(_Dst, _Value, _MaxCount);
811 }
812 
__DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(wchar_t *,__RETURN_POLICY_DST,_wcsnset_l,_wcsnset_s_l,_Inout_updates_z_ (_Size)wchar_t,_Inout_updates_z_ (_MaxCount),wchar_t,_Dst,_In_ wchar_t,_Value,_In_ size_t,_MaxCount,_In_opt_ _locale_t,_Locale)813 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(wchar_t *, __RETURN_POLICY_DST, _wcsnset_l, _wcsnset_s_l, _Inout_updates_z_(_Size) wchar_t, _Inout_updates_z_(_MaxCount), wchar_t, _Dst, _In_ wchar_t, _Value, _In_ size_t, _MaxCount, _In_opt_ _locale_t, _Locale)
814 
815 _Check_return_wat_ __inline errno_t _wcsset_s_l(_Inout_updates_z_(_Destination_size_chars) wchar_t * _Destination, _In_ size_t _Destination_size_chars, _In_ wchar_t _Value, _In_opt_ _locale_t _Locale)
816 {
817     _CRT_UNUSED(_Locale);
818     return _wcsset_s(_Destination, _Destination_size_chars, _Value);
819 }
820 
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t,_wcsset_s_l,_Prepost_z_ wchar_t,_Dest,_In_ wchar_t,_Value,_In_opt_ _locale_t,_Locale)821 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, _wcsset_s_l, _Prepost_z_ wchar_t, _Dest, _In_ wchar_t, _Value, _In_opt_ _locale_t, _Locale)
822 
823 __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(wchar_t *, __RETURN_POLICY_DST, _wcsset_l, _wcsset_s_l, _Inout_updates_z_(_Size) wchar_t, _Inout_z_ wchar_t, _Dst, _In_ wchar_t, _Value, _In_opt_ _locale_t, _Locale)
824 {
825     _CRT_UNUSED(_Locale);
826     return _wcsset(_Dst, _Value);
827 }
828 
829 __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(wchar_t *, __RETURN_POLICY_DST, _wcsset_l, _wcsset_s_l, _Inout_updates_z_(_Size) wchar_t, _Inout_z_, wchar_t, _Dst, _In_ wchar_t, _Value, _In_opt_ _locale_t, _Locale)
830 
831 #endif  /* __STDC__ || defined (_NO_INLINING) */
832 
833 #else  /* _UNICODE */
834 
835 /* ++++++++++++++++++++ SBCS and MBCS ++++++++++++++++++++ */
836 
837 #ifdef __cplusplus
838 }   /* ... extern "C" */
839 #endif  /* __cplusplus */
840 
841 #include <string.h>
842 
843 #ifdef __cplusplus
844 extern "C" {
845 #endif  /* __cplusplus */
846 
847 
848 #define _TEOF       EOF
849 
850 #define __T(x)      x
851 
852 
853 /* Program */
854 
855 #define _tmain      main
856 #define _tWinMain   WinMain
857 #define _tenviron  _environ
858 #define __targv     __argv
859 
860 
861 /* Formatted i/o */
862 
863 #define _tprintf        printf
864 #define _tprintf_l      _printf_l
865 #define _tprintf_s      printf_s
866 #define _tprintf_s_l    _printf_s_l
867 #define _tprintf_p      _printf_p
868 #define _tprintf_p_l    _printf_p_l
869 #define _tcprintf       _cprintf
870 #define _tcprintf_l     _cprintf_l
871 #define _tcprintf_s     _cprintf_s
872 #define _tcprintf_s_l   _cprintf_s_l
873 #define _tcprintf_p     _cprintf_p
874 #define _tcprintf_p_l   _cprintf_p_l
875 #define _vtcprintf      _vcprintf
876 #define _vtcprintf_l    _vcprintf_l
877 #define _vtcprintf_s    _vcprintf_s
878 #define _vtcprintf_s_l  _vcprintf_s_l
879 #define _vtcprintf_p    _vcprintf_p
880 #define _vtcprintf_p_l  _vcprintf_p_l
881 #define _ftprintf       fprintf
882 #define _ftprintf_l     _fprintf_l
883 #define _ftprintf_s     fprintf_s
884 #define _ftprintf_s_l   _fprintf_s_l
885 #define _ftprintf_p     _fprintf_p
886 #define _ftprintf_p_l   _fprintf_p_l
887 #define _stprintf       sprintf
888 #define _stprintf_l     _sprintf_l
889 #define _stprintf_s     sprintf_s
890 #define _stprintf_s_l   _sprintf_s_l
891 #define _stprintf_p     _sprintf_p
892 #define _stprintf_p_l   _sprintf_p_l
893 #define _sctprintf      _scprintf
894 #define _sctprintf_l    _scprintf_l
895 #define _sctprintf_p    _scprintf_p
896 #define _sctprintf_p_l  _scprintf_p_l
897 #define _sntprintf      _snprintf
898 #define _sntprintf_l    _snprintf_l
899 #define _sntprintf_s    _snprintf_s
900 #define _sntprintf_s_l  _snprintf_s_l
901 #define _vtprintf       vprintf
902 #define _vtprintf_l     _vprintf_l
903 #define _vtprintf_s     vprintf_s
904 #define _vtprintf_s_l   _vprintf_s_l
905 #define _vtprintf_p     _vprintf_p
906 #define _vtprintf_p_l   _vprintf_p_l
907 #define _vftprintf      vfprintf
908 #define _vftprintf_l    _vfprintf_l
909 #define _vftprintf_s    vfprintf_s
910 #define _vftprintf_s_l  _vfprintf_s_l
911 #define _vftprintf_p    _vfprintf_p
912 #define _vftprintf_p_l  _vfprintf_p_l
913 #define _vstprintf      vsprintf
914 #define _vstprintf_l    _vsprintf_l
915 #define _vstprintf_s    vsprintf_s
916 #define _vstprintf_s_l  _vsprintf_s_l
917 #define _vstprintf_p    _vsprintf_p
918 #define _vstprintf_p_l  _vsprintf_p_l
919 #define _vsctprintf     _vscprintf
920 #define _vsctprintf_l   _vscprintf_l
921 #define _vsctprintf_p   _vscprintf_p
922 #define _vsctprintf_p_l _vscprintf_p_l
923 #define _vsntprintf     _vsnprintf
924 #define _vsntprintf_l   _vsnprintf_l
925 #define _vsntprintf_s   _vsnprintf_s
926 #define _vsntprintf_s_l _vsnprintf_s_l
927 
928 #define _tscanf         scanf
929 #define _tscanf_l       _scanf_l
930 #define _tscanf_s       scanf_s
931 #define _tscanf_s_l     _scanf_s_l
932 #define _tcscanf        _cscanf
933 #define _tcscanf_l      _cscanf_l
934 #define _tcscanf_s      _cscanf_s
935 #define _tcscanf_s_l    _cscanf_s_l
936 #define _ftscanf        fscanf
937 #define _ftscanf_l      _fscanf_l
938 #define _ftscanf_s      fscanf_s
939 #define _ftscanf_s_l    _fscanf_s_l
940 #define _stscanf        sscanf
941 #define _stscanf_l      _sscanf_l
942 #define _stscanf_s      sscanf_s
943 #define _stscanf_s_l    _sscanf_s_l
944 #define _sntscanf       _snscanf
945 #define _sntscanf_l     _snscanf_l
946 #define _sntscanf_s     _snscanf_s
947 #define _sntscanf_s_l   _snscanf_s_l
948 #define _vtscanf        vscanf
949 #define _vtscanf_s      vscanf_s
950 #define _vftscanf       vfscanf
951 #define _vftscanf_s     vfscanf_s
952 #define _vstscanf       vsscanf
953 #define _vstscanf_s     vsscanf_s
954 
955 
956 /* Unformatted i/o */
957 
958 #define _fgettc          fgetc
959 #define _fgettc_nolock   _fgetc_nolock
960 #define _fgettchar       _fgetchar
961 #define _fgetts          fgets
962 #define _fputtc          fputc
963 #define _fputtc_nolock   _fputc_nolock
964 #define _fputtchar       _fputchar
965 #define _fputts          fputs
966 #define _cputts          _cputs
967 #define _gettc           getc
968 #define _gettc_nolock    _getc_nolock
969 #define _gettch          _getch
970 #define _gettch_nolock   _getch_nolock
971 #define _gettche         _getche
972 #define _gettche_nolock  _getche_nolock
973 #define _gettchar        getchar
974 #define _gettchar_nolock _getchar_nolock
975 #define _getts_s         gets_s
976 #define _cgetts_s        _cgets_s
977 #define _puttc           putc
978 #define _puttc_nolock    _fputc_nolock
979 #define _puttchar        putchar
980 #define _puttchar_nolock _putchar_nolock
981 #define _puttch          _putch
982 #define _puttch_nolock   _putch_nolock
983 #define _putts           puts
984 #define _ungettc         ungetc
985 #define _ungettc_nolock  _ungetc_nolock
986 #define _ungettch        _ungetch
987 #define _ungettch_nolock _ungetch_nolock
988 
989 /* String conversion functions */
990 
991 #define _tcstod     strtod
992 #define _tcstof     strtof
993 #define _tcstol     strtol
994 #define _tcstold    strtold
995 #define _tcstoll    strtoll
996 #define _tcstoul    strtoul
997 #define _tcstoull   strtoull
998 #define _tcstoimax  strtoimax
999 #define _tcstoumax  strtoumax
1000 #define _ttof       atof
1001 #define _tstof      atof
1002 #define _tstol      atol
1003 #define _tstoll     atoll
1004 #define _tstoi      atoi
1005 #define _tstoi64    _atoi64
1006 #define _tcstod_l     _strtod_l
1007 #define _tcstof_l     _strtof_l
1008 #define _tcstol_l     _strtol_l
1009 #define _tcstold_l    _strtold_l
1010 #define _tcstoll_l    _strtoll_l
1011 #define _tcstoul_l    _strtoul_l
1012 #define _tcstoull_l   _strtoull_l
1013 #define _tcstoimax_l  _strtoimax_l
1014 #define _tcstoumax_l  _strtoumax_l
1015 #define _tstof_l      _atof_l
1016 #define _tstol_l      _atol_l
1017 #define _tstoll_l     _atoll_l
1018 #define _tstoi_l      _atoi_l
1019 #define _tstoi64_l    _atoi64_l
1020 
1021 #define _itot_s     _itoa_s
1022 #define _ltot_s     _ltoa_s
1023 #define _ultot_s    _ultoa_s
1024 #define _itot       _itoa
1025 #define _ltot       _ltoa
1026 #define _ultot      _ultoa
1027 #define _ttoi       atoi
1028 #define _ttol       atol
1029 #define _ttoll      atoll
1030 
1031 #define _ttoi64     _atoi64
1032 #define _tcstoi64   _strtoi64
1033 #define _tcstoi64_l   _strtoi64_l
1034 #define _tcstoui64  _strtoui64
1035 #define _tcstoui64_l  _strtoui64_l
1036 #define _i64tot_s   _i64toa_s
1037 #define _ui64tot_s  _ui64toa_s
1038 #define _i64tot     _i64toa
1039 #define _ui64tot    _ui64toa
1040 
1041 /* String functions */
1042 
1043 /* Note that _mbscat, _mbscpy and _mbsdup are functionally equivalent to
1044    strcat, strcpy and strdup, respectively. */
1045 
1046 #define _tcscat     strcat
1047 #define _tcscat_s   strcat_s
1048 #define _tcscpy     strcpy
1049 #define _tcscpy_s   strcpy_s
1050 #define _tcsdup     _strdup
1051 #define _tcslen     strlen
1052 #define _tcsnlen    strnlen
1053 #define _tcsxfrm    strxfrm
1054 #define _tcsxfrm_l    _strxfrm_l
1055 #define _tcserror   strerror
1056 #define _tcserror_s   strerror_s
1057 #define __tcserror  _strerror
1058 #define __tcserror_s  _strerror_s
1059 
1060 #ifdef _DEBUG
1061 #define _tcsdup_dbg _strdup_dbg
1062 #endif  /* _DEBUG */
1063 
1064 /* Execute functions */
1065 
1066 #define _texecl     _execl
1067 #define _texecle    _execle
1068 #define _texeclp    _execlp
1069 #define _texeclpe   _execlpe
1070 #define _texecv     _execv
1071 #define _texecve    _execve
1072 #define _texecvp    _execvp
1073 #define _texecvpe   _execvpe
1074 
1075 #define _tspawnl    _spawnl
1076 #define _tspawnle   _spawnle
1077 #define _tspawnlp   _spawnlp
1078 #define _tspawnlpe  _spawnlpe
1079 #define _tspawnv    _spawnv
1080 #define _tspawnve   _spawnve
1081 #define _tspawnvp   _spawnvp
1082 #define _tspawnvpe  _spawnvpe
1083 
1084 #define _tsystem    system
1085 
1086 
1087 /* Time functions */
1088 
1089 #define _tasctime   asctime
1090 #define _tctime     ctime
1091 #define _tctime32   _ctime32
1092 #define _tctime64   _ctime64
1093 #define _tstrdate   _strdate
1094 #define _tstrtime   _strtime
1095 #define _tutime     _utime
1096 #define _tutime32   _utime32
1097 #define _tutime64   _utime64
1098 #define _tcsftime   strftime
1099 #define _tcsftime_l _strftime_l
1100 
1101 #define _tasctime_s   asctime_s
1102 #define _tctime_s     ctime_s
1103 #define _tctime32_s   _ctime32_s
1104 #define _tctime64_s   _ctime64_s
1105 #define _tstrdate_s   _strdate_s
1106 #define _tstrtime_s   _strtime_s
1107 
1108 /* Directory functions */
1109 
1110 #define _tchdir             _chdir
1111 #define _tgetcwd            _getcwd
1112 #define _tgetdcwd           _getdcwd
1113 #define _tgetdcwd_nolock    _getdcwd_nolock
1114 #define _tmkdir             _mkdir
1115 #define _trmdir             _rmdir
1116 
1117 #ifdef _DEBUG
1118 #define _tgetcwd_dbg        _getcwd_dbg
1119 #define _tgetdcwd_dbg       _getdcwd_dbg
1120 #define _tgetdcwd_lk_dbg    _getdcwd_lk_dbg
1121 #endif  /* _DEBUG */
1122 
1123 /* Environment/Path functions */
1124 
1125 #define _tfullpath      _fullpath
1126 #define _tgetenv        getenv
1127 #define _tgetenv_s      getenv_s
1128 #define _tdupenv_s      _dupenv_s
1129 #define _tmakepath      _makepath
1130 #define _tmakepath_s    _makepath_s
1131 #define _tpgmptr        _pgmptr
1132 #define _get_tpgmptr    _get_pgmptr
1133 #define _tputenv        _putenv
1134 #define _tputenv_s      _putenv_s
1135 #define _tsearchenv     _searchenv
1136 #define _tsearchenv_s   _searchenv_s
1137 #define _tsplitpath     _splitpath
1138 #define _tsplitpath_s   _splitpath_s
1139 
1140 #ifdef _DEBUG
1141 #define _tfullpath_dbg  _fullpath_dbg
1142 #define _tdupenv_s_dbg  _dupenv_s_dbg
1143 #endif  /* _DEBUG */
1144 
1145 /* Stdio functions */
1146 
1147 #define _tfdopen    _fdopen
1148 #define _tfsopen    _fsopen
1149 #define _tfopen     fopen
1150 #define _tfopen_s   fopen_s
1151 #define _tfreopen   freopen
1152 #define _tfreopen_s freopen_s
1153 #define _tperror    perror
1154 #define _tpopen     _popen
1155 #define _ttempnam   _tempnam
1156 #define _ttmpnam    tmpnam
1157 #define _ttmpnam_s  tmpnam_s
1158 
1159 #ifdef _DEBUG
1160 #define _ttempnam_dbg   _tempnam_dbg
1161 #endif  /* _DEBUG */
1162 
1163 
1164 /* Io functions */
1165 
1166 #define _tchmod     _chmod
1167 #define _tcreat     _creat
1168 #define _tfindfirst      _findfirst
1169 #define _tfindfirst32    _findfirst32
1170 #define _tfindfirst64    _findfirst64
1171 #define _tfindfirsti64   _findfirsti64
1172 #define _tfindfirst32i64 _findfirst32i64
1173 #define _tfindfirst64i32 _findfirst64i32
1174 #define _tfindnext       _findnext
1175 #define _tfindnext32     _findnext32
1176 #define _tfindnext64     _findnext64
1177 #define _tfindnexti64    _findnexti64
1178 #define _tfindnext32i64  _findnext32i64
1179 #define _tfindnext64i32  _findnext64i32
1180 #define _tmktemp            _mktemp
1181 #define _tmktemp_s          _mktemp_s
1182 
1183 #define _topen      _open
1184 #define _taccess    _access
1185 #define _taccess_s  _access_s
1186 
1187 #define _tremove    remove
1188 #define _trename    rename
1189 #define _tsopen     _sopen
1190 #define _tsopen_s   _sopen_s
1191 #define _tunlink    _unlink
1192 
1193 #define _tfinddata_t      _finddata_t
1194 #define _tfinddata32_t    _finddata32_t
1195 #define _tfinddata64_t    __finddata64_t
1196 #define _tfinddatai64_t   _finddatai64_t
1197 #define _tfinddata32i64_t _finddata32i64_t
1198 #define _tfinddata64i32_t _finddata64i32_t
1199 
1200 /* ctype functions */
1201 #define _istascii       __isascii
1202 #define _istcntrl       iscntrl
1203 #define _istcntrl_l     _iscntrl_l
1204 #define _istxdigit      isxdigit
1205 #define _istxdigit_l    _isxdigit_l
1206 
1207 /* Stat functions */
1208 #define _tstat      _stat
1209 #define _tstat32    _stat32
1210 #define _tstat32i64 _stat32i64
1211 #define _tstat64    _stat64
1212 #define _tstat64i32 _stat64i32
1213 #define _tstati64   _stati64
1214 
1215 
1216 /* Setlocale functions */
1217 
1218 #define _tsetlocale setlocale
1219 
1220 
1221 #ifdef _MBCS
1222 
1223 #ifndef _CRT_USE_WINAPI_FAMILY_DESKTOP_APP
1224 #error Multibyte Character Set (MBCS) not supported for the current WINAPI_FAMILY.
1225 #endif  /* _CRT_USE_WINAPI_FAMILY_DESKTOP_APP */
1226 
1227 /* ++++++++++++++++++++ MBCS ++++++++++++++++++++ */
1228 
1229 #ifdef __cplusplus
1230 }   /* ... extern "C" */
1231 #endif  /* __cplusplus */
1232 
1233 #include <mbstring.h>
1234 
1235 #ifdef __cplusplus
1236 extern "C" {
1237 #endif  /* __cplusplus */
1238 
1239 
1240 #ifndef __TCHAR_DEFINED
1241 typedef char            _TCHAR;
1242 typedef signed char     _TSCHAR;
1243 typedef unsigned char   _TUCHAR;
1244 typedef unsigned char   _TXCHAR;
1245 typedef unsigned int    _TINT;
1246 #define __TCHAR_DEFINED
1247 #endif  /* __TCHAR_DEFINED */
1248 
1249 #if defined(_CRT_INTERNAL_NONSTDC_NAMES) && _CRT_INTERNAL_NONSTDC_NAMES
1250 #ifndef _TCHAR_DEFINED
1251 typedef char            TCHAR;
1252 typedef char *          PTCHAR;
1253 typedef unsigned char   TBYTE;
1254 typedef unsigned char * PTBYTE;
1255 #define _TCHAR_DEFINED
1256 #endif  /* _TCHAR_DEFINED */
1257 #endif  /* _CRT_INTERNAL_NONSTDC_NAMES */
1258 
1259 
1260 #ifdef _MB_MAP_DIRECT
1261 
1262 /* use mb functions directly - types must match */
1263 
1264 /* String functions */
1265 
1266 #define _tcschr         _mbschr
1267 #define _tcscspn        _mbscspn
1268 #define _tcsncat        _mbsnbcat
1269 #define _tcsncat_s      _mbsnbcat_s
1270 #define _tcsncat_l      _mbsnbcat_l
1271 #define _tcsncat_s_l    _mbsnbcat_s_l
1272 #define _tcsncpy        _mbsnbcpy
1273 #define _tcsncpy_s      _mbsnbcpy_s
1274 #define _tcsncpy_l      _mbsnbcpy_l
1275 #define _tcsncpy_s_l    _mbsnbcpy_s_l
1276 #define _tcspbrk        _mbspbrk
1277 #define _tcsrchr        _mbsrchr
1278 #define _tcsspn         _mbsspn
1279 #define _tcsstr         _mbsstr
1280 #define _tcstok         _mbstok
1281 #define _tcstok_s       _mbstok_s
1282 #define _tcstok_l       _mbstok_l
1283 #define _tcstok_s_l     _mbstok_s_l
1284 
1285 #define _tcsnset        _mbsnbset
1286 #define _tcsnset_l      _mbsnbset_l
1287 #define _tcsnset_s      _mbsnbset_s
1288 #define _tcsnset_s_l    _mbsnbset_s_l
1289 #define _tcsrev         _mbsrev
1290 #define _tcsset         _mbsset
1291 #define _tcsset_s       _mbsset_s
1292 #define _tcsset_l       _mbsset_l
1293 #define _tcsset_s_l     _mbsset_s_l
1294 
1295 #define _tcscmp         _mbscmp
1296 #define _tcsicmp        _mbsicmp
1297 #define _tcsicmp_l      _mbsicmp_l
1298 #define _tcsnccmp       _mbsncmp
1299 #define _tcsncmp        _mbsnbcmp
1300 #define _tcsncicmp      _mbsnicmp
1301 #define _tcsncicmp_l    _mbsnicmp_l
1302 #define _tcsnicmp       _mbsnbicmp
1303 #define _tcsnicmp_l     _mbsnbicmp_l
1304 
1305 #define _tcscoll        _mbscoll
1306 #define _tcscoll_l      _mbscoll_l
1307 #define _tcsicoll       _mbsicoll
1308 #define _tcsicoll_l     _mbsicoll_l
1309 #define _tcsnccoll      _mbsncoll
1310 #define _tcsnccoll_l    _mbsncoll_l
1311 #define _tcsncoll       _mbsnbcoll
1312 #define _tcsncoll_l     _mbsnbcoll_l
1313 #define _tcsncicoll     _mbsnicoll
1314 #define _tcsncicoll_l   _mbsnicoll_l
1315 #define _tcsnicoll      _mbsnbicoll
1316 #define _tcsnicoll_l    _mbsnbicoll_l
1317 
1318 /* "logical-character" mappings */
1319 
1320 #define _tcsclen        _mbslen
1321 #define _tcscnlen       _mbsnlen
1322 #define _tcsclen_l      _mbslen_l
1323 #define _tcscnlen_l     _mbsnlen_l
1324 #define _tcsnccat       _mbsncat
1325 #define _tcsnccat_s     _mbsncat_s
1326 #define _tcsnccat_l     _mbsncat_l
1327 #define _tcsnccat_s_l   _mbsncat_s_l
1328 #define _tcsnccpy       _mbsncpy
1329 #define _tcsnccpy_s     _mbsncpy_s
1330 #define _tcsnccpy_l     _mbsncpy_l
1331 #define _tcsnccpy_s_l   _mbsncpy_s_l
1332 #define _tcsncset       _mbsnset
1333 #define _tcsncset_s     _mbsnset_s
1334 #define _tcsncset_l     _mbsnset_l
1335 #define _tcsncset_s_l   _mbsnset_s_l
1336 
1337 /* MBCS-specific mappings */
1338 
1339 #define _tcsdec     _mbsdec
1340 #define _tcsinc     _mbsinc
1341 #define _tcsnbcnt   _mbsnbcnt
1342 #define _tcsnccnt   _mbsnccnt
1343 #define _tcsnextc   _mbsnextc
1344 #define _tcsninc    _mbsninc
1345 #define _tcsspnp    _mbsspnp
1346 
1347 #define _tcslwr     _mbslwr
1348 #define _tcslwr_l   _mbslwr_l
1349 #define _tcslwr_s   _mbslwr_s
1350 #define _tcslwr_s_l _mbslwr_s_l
1351 #define _tcsupr     _mbsupr
1352 #define _tcsupr_l   _mbsupr_l
1353 #define _tcsupr_s   _mbsupr_s
1354 #define _tcsupr_s_l _mbsupr_s_l
1355 
1356 #define _tclen      _mbclen
1357 #define _tccpy      _mbccpy
1358 #define _tccpy_l    _mbccpy_l
1359 #define _tccpy_s    _mbccpy_s
1360 #define _tccpy_s_l  _mbccpy_s_l
1361 
1362 #else  /* _MB_MAP_DIRECT */
1363 
1364 #if __STDC__ || defined _NO_INLINING
1365 
1366 /* use type-safe linked-in function thunks */
1367 
1368 /* String functions */
1369 
1370 _Check_return_ _ACRTIMP _CONST_RETURN char * __cdecl _tcschr(_In_z_ const char * _Str, _In_ unsigned int _Val);
1371 _Check_return_ _ACRTIMP size_t __cdecl _tcscspn(_In_z_ const char * _Str, _In_z_ const char * _Control);
1372 _CRT_INSECURE_DEPRECATE(_tcsncat_s) _ACRTIMP char * __cdecl _tcsncat(_Inout_updates_z_(_MaxCount) char *_Dst, _In_z_ const char *_Src, _In_ size_t _MaxCount);
1373 _ACRTIMP char * __cdecl _tcsncat_s(_Inout_updates_z_(_DstSizeInChars) char *_Dst, _In_ size_t _DstSizeInChars, _In_z_ const char *_Src, size_t _MaxCount);
1374 _CRT_INSECURE_DEPRECATE(_tcsncat_s_l) _ACRTIMP char * __cdecl _tcsncat_l(_Inout_updates_z_(_MaxCount) char *_Dst, _In_z_ const char *_Src, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1375 _ACRTIMP char * __cdecl _tcsncat_s_l(_Inout_updates_z_(_DstSizeInChars) char *_Dst, _In_ size_t _DstSizeInChars, _In_z_ const char *_Src, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1376 _CRT_INSECURE_DEPRECATE(_tcsncpy_s) _ACRTIMP char * __cdecl _tcsncpy(_Out_writes_(_MaxCount) _Post_maybez_ char *_Dst, _In_z_ const char *_Src, size_t _MaxCount);
1377 _ACRTIMP char * __cdecl _tcsncpy_s(_Out_writes_(_DstSizeInChars) char *_Dst, _In_ size_t _DstSizeInChars, _In_z_ const char *_Src, size_t _MaxCount);
1378 _CRT_INSECURE_DEPRECATE(_tcsncpy_s_l) _ACRTIMP char * __cdecl _tcsncpy_l(_Out_writes_(_MaxCount) _Post_maybez_ char *_Dst, _In_z_ const char *_Src, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1379 _ACRTIMP char * __cdecl _tcsncpy_s_l(_Out_writes_(_DstSizeInChars) char *_Dst, _In_ size_t _DstSizeInChars, _In_z_ const char *_Src, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1380 _Check_return_ _ACRTIMP _CONST_RETURN char * __cdecl _tcspbrk(_In_z_ const char * _Str, _In_z_ const char * _Control);
1381 _Check_return_ _ACRTIMP _CONST_RETURN char * __cdecl _tcsrchr(_In_z_ const char * _Str, _In_ unsigned int _Ch);
1382 _Check_return_ _ACRTIMP size_t __cdecl _tcsspn(_In_z_ const char * _Str, _In_z_ const char * _Control);
1383 _Check_return_ _ACRTIMP _CONST_RETURN char * __cdecl _tcsstr(_In_z_ const char * _Str, _In_z_ const char * _Substr);
1384 _Check_return_ _CRT_INSECURE_DEPRECATE(_tcstok_s) _ACRTIMP char * __cdecl _tcstok(_Inout_opt_ char *_Str, _In_z_ const char *_Delim);
1385 _Check_return_ _ACRTIMP char * __cdecl _tcstok_s(_Inout_opt_ char *_Str, _In_z_ const char *_Delim, _Inout_ _Deref_prepost_opt_z_ char **_Context);
1386 _Check_return_ _CRT_INSECURE_DEPRECATE(_tcstok_s_l) _ACRTIMP char * __cdecl _tcstok_l(_Inout_opt_ char *_Str, _In_z_ const char *_Delim, _In_opt_ _locale_t _Locale);
1387 _Check_return_ _ACRTIMP char * __cdecl _tcstok_s_l(_Inout_opt_ char *_Str, _In_z_ const char *_Delim, _Inout_ _Deref_prepost_opt_z_ char **_Context, _In_opt_ _locale_t _Locale);
1388 
1389 _CRT_INSECURE_DEPRECATE(_tcsnset_s) _ACRTIMP char * __cdecl _tcsnset(_Inout_z_ char * _Str, _In_ unsigned int _Val, _In_ size_t _MaxCount);
1390 _Check_return_wat_ _ACRTIMP errno_t __cdecl _tcsnset_s(_Inout_updates_z_(_SizeInChars) char * _Str, _In_ size_t _SizeInChars, _In_ unsigned int _Val , _In_ size_t _MaxCount);
1391 _CRT_INSECURE_DEPRECATE(_tcsnset_s_l) _ACRTIMP char * __cdecl _tcsnset_l(_Inout_z_ char * _Str, _In_ unsigned int _Val, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1392 _Check_return_wat_ _ACRTIMP errno_t __cdecl _tcsnset_s_l(_Inout_updates_z_(_SizeInChars) char * _Str, _In_ size_t _SizeInChars, _In_ unsigned int _Val , _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1393 _ACRTIMP char * __cdecl _tcsrev(_Inout_z_ char * _Str);
1394 _CRT_INSECURE_DEPRECATE(_tcsset_s) _ACRTIMP char * __cdecl _tcsset(_Inout_z_ char * _Str, _In_ unsigned int _Val);
1395 _CRT_INSECURE_DEPRECATE(_tcsset_s_l) _ACRTIMP char * __cdecl _tcsset_l(_Inout_z_ char * _Str, _In_ unsigned int _Val, _In_opt_ _locale_t _Locale);
1396 _Check_return_wat_ _ACRTIMP errno_t __cdecl _tcsset_s(_Inout_updates_z_(_SizeInChars) char * _Str, _In_ size_t _SizeInChars, _In_ unsigned int _Val);
1397 _Check_return_wat_ _ACRTIMP errno_t __cdecl _tcsset_s_l(_Inout_updates_z_(_SizeInChars) char * _Str, _In_ size_t _SizeInChars, _In_ unsigned int, _In_opt_ _locale_t _Locale);
1398 
1399 _Check_return_ _ACRTIMP int __cdecl _tcscmp(_In_z_ const char *_Str1, _In_z_ const char * _Str);
1400 _Check_return_ _ACRTIMP int __cdecl _tcsicmp(_In_z_ const char *_Str1, _In_z_ const char *_Str2);
1401 _Check_return_ _ACRTIMP int __cdecl _tcsicmp_l(_In_z_ const char *_Str1, _In_z_ const char *_Str2, _In_opt_ _locale_t _Locale);
1402 _Check_return_ _ACRTIMP int __cdecl _tcsnccmp(_In_z_ const char * _Str1, _In_z_ const char * _Str2, _In_ size_t _MaxCount);
1403 _Check_return_ _ACRTIMP int __cdecl _tcsncmp(_In_z_ const char * _Str1, _In_z_ const char * _Str2, _In_ size_t _MaxCount);
1404 _Check_return_ _ACRTIMP int __cdecl _tcsncicmp(_In_z_ const char * _Str1, _In_z_ const char * _Str2, _In_ size_t _MaxCount);
1405 _Check_return_ _ACRTIMP int __cdecl _tcsncicmp_l(_In_z_ const char *_Str1, _In_z_ const char *_Str2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1406 _Check_return_ _ACRTIMP int __cdecl _tcsnicmp(_In_z_ const char * _Str1, _In_z_ const char * _Str2, _In_ size_t _MaxCount);
1407 _Check_return_ _ACRTIMP int __cdecl _tcsnicmp_l(_In_z_ const char *_Str1, _In_z_ const char *_Str2, size_t _MaxCount, _In_opt_ _locale_t _Locale);
1408 
1409 _Check_return_ _ACRTIMP int __cdecl _tcscoll(_In_z_ const char * _Str1, _In_z_ const char * _Str2);
1410 _Check_return_ _ACRTIMP int __cdecl _tcscoll_l(_In_z_ const char *_Str1, _In_z_ const char *_Str2, _In_opt_ _locale_t _Locale);
1411 _Check_return_ _ACRTIMP int __cdecl _tcsicoll(_In_z_ const char * _Str1, _In_z_ const char * _Str2);
1412 _Check_return_ _ACRTIMP int __cdecl _tcsicoll_l(_In_z_ const char *_Str1, _In_z_ const char *_Str2, _In_opt_ _locale_t _Locale);
1413 _Check_return_ _ACRTIMP int __cdecl _tcsnccoll(_In_z_ const char * _Str1, _In_z_ const char * _Str2, _In_ size_t _MaxCount);
1414 _Check_return_ _ACRTIMP int __cdecl _tcsnccoll_l(_In_z_ const char *_Str1, _In_z_ const char *_Str2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1415 _Check_return_ _ACRTIMP int __cdecl _tcsncoll(_In_z_ const char *_Str1, _In_z_ const char * _Str2, _In_ size_t _MaxCount);
1416 _Check_return_ _ACRTIMP int __cdecl _tcsncoll_l(_In_z_ const char *_Str1, _In_z_ const char *_Str2, size_t _MaxCount, _In_opt_ _locale_t _Locale);
1417 _Check_return_ _ACRTIMP int __cdecl _tcsncicoll(_In_z_ const char * _Str1, _In_z_ const char * _Str2, _In_ size_t _MaxCount);
1418 _Check_return_ _ACRTIMP int __cdecl _tcsncicoll_l(_In_z_ const char *_Str1, _In_z_ const char *_Str2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1419 _Check_return_ _ACRTIMP int __cdecl _tcsnicoll(_In_z_ const char * _Str1, _In_z_ const char * _Str2, _In_ size_t _MaxCount);
1420 _Check_return_ _ACRTIMP int __cdecl _tcsnicoll_l(_In_z_ const char *_Str1, _In_z_ const char *_Str2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1421 
1422 /* "logical-character" mappings */
1423 
1424 _Post_satisfies_(return <= _String_length_(_Str))
1425 _Check_return_ _ACRTIMP size_t __cdecl _tcsclen(_In_z_ const char *_Str);
1426 
1427 _Post_satisfies_(return <= _String_length_(_Str) && return <= _MaxCount)
1428 _Check_return_ _ACRTIMP size_t __cdecl _tcscnlen(_In_z_ const char *_Str, _In_ size_t _MaxCount);
1429 
1430 _Post_satisfies_(return <= _String_length_(_Str))
1431 _Check_return_ _ACRTIMP size_t __cdecl _tcsclen_l(_In_z_ const char *_Str, _In_opt_ _locale_t _Locale);
1432 
1433 _Post_satisfies_(return <= _String_length_(_Str) && return <= _MaxCount)
1434 _Check_return_ _ACRTIMP size_t __cdecl _tcscnlen_l(_In_z_ const char *_Str, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1435 
1436 _CRT_INSECURE_DEPRECATE(_tcsnccat_s) _ACRTIMP char * __cdecl _tcsnccat(_Inout_ char *_Dst, _In_z_ const char *_Src, _In_ size_t _MaxCount);
1437 _ACRTIMP char * __cdecl _tcsnccat_s(_Inout_updates_z_(_DstSizeInChars) char *_Dst, _In_ size_t _DstSizeInChars, _In_z_ const char *_Src, _In_ size_t _MaxCount);
1438 _CRT_INSECURE_DEPRECATE(_tcsnccat_s_l) _ACRTIMP char * __cdecl _tcsnccat_l(_Inout_ char *_Dst, _In_z_ const char *_Src, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1439 _ACRTIMP char * __cdecl _tcsnccat_s_l(_Inout_updates_z_(_DstSizeInChars) char *_Dst, _In_ size_t _DstSizeInChars, _In_z_ const char *_Src, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1440 _CRT_INSECURE_DEPRECATE(_tcsnccpy_s) _ACRTIMP char * __cdecl _tcsnccpy(_Out_writes_(_MaxCount) _Post_maybez_ char *_Dst, _In_z_ const char *_Src, _In_ size_t _MaxCount);
1441 _ACRTIMP char * __cdecl _tcsnccpy_s(_Out_writes_(_DstSizeInChars) char *_Dst, _In_ size_t _DstSizeInChars, _In_z_ const char *_Src, _In_ size_t _MaxCount);
1442 _CRT_INSECURE_DEPRECATE(_tcsnccpy_s_l) _ACRTIMP char * __cdecl _tcsnccpy_l(_Out_writes_(_MaxCount) _Post_maybez_ char *_Dst, _In_z_ const char *_Src, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1443 _ACRTIMP char * __cdecl _tcsnccpy_s_l(_Out_writes_(_DstSizeInChars) char *_Dst, _In_ size_t _DstSizeInChars, _In_z_ const char *_Src, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1444 _CRT_INSECURE_DEPRECATE(_tcsncset_s) _ACRTIMP char * __cdecl _tcsncset(_Inout_updates_z_(_MaxCount) char * _Str, _In_ unsigned int _Val, _In_ size_t _MaxCount);
1445 _ACRTIMP char * __cdecl _tcsncset_s(_Inout_updates_z_(_SizeInChars) char * _Str, _In_ size_t _SizeInChars, _In_ unsigned int _Val, _In_ size_t _MaxCount);
1446 _CRT_INSECURE_DEPRECATE(_tcsncset_s_l) _ACRTIMP char * __cdecl _tcsncset_l(_Inout_updates_z_(_MaxCount) char * _Str, _In_ unsigned int _Val, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1447 _ACRTIMP char * __cdecl _tcsncset_s_l(_Inout_updates_z_(_SizeInChars) char * _Str, _In_ size_t _SizeInChars, _In_ unsigned int _Val, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale);
1448 
1449 /* MBCS-specific mappings */
1450 
1451 _ACRTIMP char * __cdecl _tcsdec(_In_reads_z_(_Pos-_Start+1) const char * _Start, _In_z_ const char * _Pos);
1452 _ACRTIMP char * __cdecl _tcsinc(_In_z_ const char * _Ptr);
1453 _ACRTIMP size_t __cdecl _tcsnbcnt(_In_reads_or_z_(_MaxCount) const char * _Str, _In_ size_t _MaxCount);
1454 _ACRTIMP size_t __cdecl _tcsnccnt(_In_reads_or_z_(_MaxCount) const char * _Str, _In_ size_t _MaxCount);
1455 _ACRTIMP unsigned int __cdecl _tcsnextc (_In_z_ const char * _Str);
1456 _ACRTIMP char * __cdecl _tcsninc(_In_reads_or_z_(_Count) const char * _Ptr, _In_ size_t _Count);
1457 _ACRTIMP char * __cdecl _tcsspnp(_In_z_ const char * _Str1, _In_z_ const char * _Str2);
1458 
1459 _CRT_INSECURE_DEPRECATE(_tcslwr_s) _ACRTIMP char * __cdecl _tcslwr(_Inout_ char *_Str);
1460 _CRT_INSECURE_DEPRECATE(_tcslwr_s_l) _ACRTIMP char * __cdecl _tcslwr_l(_Inout_ char *_Str, _In_opt_ _locale_t _Locale);
1461 _ACRTIMP char * __cdecl _tcslwr_s(_Inout_updates_z_(_SizeInChars) char *_Str, _In_ size_t _SizeInChars);
1462 _ACRTIMP char * __cdecl _tcslwr_s_l(_Inout_updates_z_(_SizeInChars) char *_Str, _In_ size_t _SizeInChars, _In_opt_ _locale_t _Locale);
1463 _CRT_INSECURE_DEPRECATE(_tcsupr_s) _ACRTIMP char * __cdecl _tcsupr(_Inout_ char *_Str);
1464 _CRT_INSECURE_DEPRECATE(_tcsupr_s_l) _ACRTIMP char * __cdecl _tcsupr_l(_Inout_ char *_Str, _In_opt_ _locale_t _Locale);
1465 _ACRTIMP char * __cdecl _tcsupr_s(_Inout_updates_z_(_SizeInChars) char *_Str, _In_ size_t _SizeInChars);
1466 _ACRTIMP char * __cdecl _tcsupr_s_l(_Inout_updates_z_(_SizeInChars) char *_Str, _In_ size_t _SizeInChars, _In_opt_ _locale_t _Locale);
1467 
1468 _Check_return_ _ACRTIMP size_t __cdecl _tclen(_In_z_ const char * _Str);
1469 _CRT_INSECURE_DEPRECATE(_tccpy_s) _ACRTIMP void __cdecl _tccpy(_Pre_notnull_ _Post_z_ char * _DstCh, _In_z_ const char * _SrcCh);
1470 _CRT_INSECURE_DEPRECATE(_tccpy_s_l) _ACRTIMP void __cdecl _tccpy_l(_Pre_notnull_ _Post_z_ char * _DstCh, _In_z_ const char * _SrcCh, _In_opt_ _locale_t _Locale);
1471 _Check_return_wat_ _ACRTIMP errno_t __cdecl _tccpy_s(_Out_writes_z_(_SizeInBytes) char * _DstCh, size_t _SizeInBytes, _Out_opt_ int *_PCopied, _In_z_ const char * _SrcCh);
1472 _Check_return_wat_ _ACRTIMP errno_t __cdecl _tccpy_s_l(_Out_writes_z_(_SizeInBytes) char * _DstCh, size_t _SizeInBytes, _Out_opt_ int *_PCopied, _In_z_ const char * _SrcCh, _In_opt_ _locale_t _Locale);
1473 
1474 #else  /* __STDC__ || defined (_NO_INLINING) */
1475 
1476 /* the default: use type-safe inline function thunks */
1477 
1478 #define _PUC    unsigned char *
1479 #define _CPUC   const unsigned char *
1480 #define _PC     char *
1481 #define _CRPC   _CONST_RETURN char *
1482 #define _CPC    const char *
1483 #define _UI     unsigned int
1484 
1485 
1486 /* String functions */
1487 
1488 __inline _CRPC _tcschr(_In_z_ _CPC _s1,_In_ _UI _c) {return (_CRPC)_mbschr((_CPUC)_s1,_c);}
1489 __inline size_t _tcscspn(_In_z_ _CPC _s1,_In_z_ _CPC _s2) {return _mbscspn((_CPUC)_s1,(_CPUC)_s2);}
1490 
1491 _Check_return_wat_ __inline errno_t _tcsncat_s(_Inout_updates_z_(_Destination_size_chars) char *_Destination, _In_ size_t _Destination_size_chars, _In_z_ const char *_Source, _In_ size_t _Count)
1492 {
1493     return _mbsnbcat_s((unsigned char *)_Destination, _Destination_size_chars, (const unsigned char *)_Source,_Count);
1494 }
1495 
1496 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, _tcsncat_s, _Prepost_z_ char, _Dest, _In_z_ const char *, _Source, _In_ size_t, _Count)
1497 
1498 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(char *, __RETURN_POLICY_DST, _tcsncat, _tcsncat_s, _Inout_updates_z_(_Size) char, _Inout_z_ char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count)
1499 {
1500     return (char *)_mbsnbcat((unsigned char *)_Dst,(const unsigned char *)_Source,_Count);
1501 }
1502 
1503 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(char *, __RETURN_POLICY_DST, _tcsncat, _tcsncat_s, _Inout_updates_z_(_Size) char, _Inout_z_, char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count)
1504 
1505 _Check_return_wat_ __inline errno_t _tcsncat_s_l(_Inout_updates_z_(_Destination_size_chars) char *_Destination, _In_ size_t _Destination_size_chars, _In_z_ const char *_Source, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
1506 {
1507     return _mbsnbcat_s_l((unsigned char *)_Destination, _Destination_size_chars, (const unsigned char *)_Source,_Count, _Locale);
1508 }
1509 
1510 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t, _tcsncat_s_l, _Prepost_z_ char, _Dest, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1511 
1512 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _tcsncat_l, _tcsncat_s_l, _Inout_updates_z_(_Size) char, _Inout_z_ char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1513 {
1514     return (char *)_mbsnbcat_l((unsigned char *)_Dst,(const unsigned char *)_Source,_Count, _Locale);
1515 }
1516 
1517 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _tcsncat_l, _tcsncat_s_l, _Inout_updates_z_(_Size) char, _Inout_z_, char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1518 
1519 _Check_return_wat_ __inline errno_t _tcsncpy_s(_Out_writes_z_(_Destination_size_chars) char * _Destination, _In_ size_t _Destination_size_chars, _In_z_ const char * _Source,_In_ size_t _Count)
1520 {
1521     return _mbsnbcpy_s((unsigned char *)_Destination, _Destination_size_chars, (const unsigned char *)_Source,_Count);
1522 }
1523 
1524 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, _tcsncpy_s, _Post_z_ char, _Dest, _In_z_ const char *, _Source, _In_ size_t, _Count)
1525 
1526 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(_Success_(return != 0) char *, __RETURN_POLICY_DST, _tcsncpy, _tcsncpy_s, _Out_writes_bytes_(_Count) _Post_maybez_ char, _Out_writes_bytes_(_Count) _Post_maybez_ char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count)
1527 {
1528     return (char *)_mbsnbcpy((unsigned char *)_Dst,(const unsigned char *)_Source,_Count);
1529 }
1530 
1531 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(char *, __RETURN_POLICY_DST, _tcsncpy, _tcsncpy_s, _Out_writes_z_(_Size) char, _Inout_z_, char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count)
1532 
1533 _Check_return_wat_ __inline errno_t _tcsncpy_s_l(_Out_writes_z_(_Destination_size_chars) char * _Destination, _In_ size_t _Destination_size_chars, _In_z_ const char * _Source,_In_ size_t _Count, _In_opt_ _locale_t _Locale)
1534 {
1535     return _mbsnbcpy_s_l((unsigned char *)_Destination, _Destination_size_chars, (const unsigned char *)_Source,_Count, _Locale);
1536 }
1537 
1538 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t, _tcsncpy_s_l, _Post_z_ char, _Dest, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1539 
1540 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _tcsncpy_l, _tcsncpy_s_l, _Out_writes_z_(_Size) char, _Out_writes_bytes_(_Count) _Post_maybez_ char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1541 {
1542     return (char *)_mbsnbcpy_l((unsigned char *)_Dst,(const unsigned char *)_Source,_Count, _Locale);
1543 }
1544 
1545 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _tcsncpy_l, _tcsncpy_s_l, _Out_writes_z_(_Size) char, _Out_writes_z_(_Count), char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1546 
1547 _Check_return_ __inline _CRPC _tcspbrk(_In_z_ _CPC _s1,_In_z_ _CPC _s2) {return (_CRPC)_mbspbrk((_CPUC)_s1,(_CPUC)_s2);}
1548 _Check_return_ __inline _CRPC _tcsrchr(_In_z_ _CPC _s1,_In_ _UI _c) {return (_CRPC)_mbsrchr((_CPUC)_s1,_c);}
1549 _Check_return_ __inline size_t _tcsspn(_In_z_ _CPC _s1,_In_z_ _CPC _s2) {return _mbsspn((_CPUC)_s1,(_CPUC)_s2);}
1550 _Check_return_ __inline _CRPC _tcsstr(_In_z_ _CPC _s1,_In_z_ _CPC _s2) {return (_CRPC)_mbsstr((_CPUC)_s1,(_CPUC)_s2);}
1551 
1552 _Check_return_ _CRT_INSECURE_DEPRECATE(_tcstok_s) __inline char *  _tcstok(_Inout_opt_z_ char * _String,_In_z_ const char * _Delimiters)
1553 {
1554         return (char * )_mbstok((unsigned char *)_String,(const unsigned char *)_Delimiters);
1555 }
1556 
1557 _Check_return_ __inline char *  _tcstok_s(_Inout_opt_z_ char * _String,_In_z_ const char * _Delimiters, _Inout_ _Deref_prepost_opt_z_ char **_Current_position)
1558 {
1559         return (char * )_mbstok_s((unsigned char *)_String,(const unsigned char *)_Delimiters, (unsigned char **)_Current_position);
1560 }
1561 
1562 _Check_return_ _CRT_INSECURE_DEPRECATE(_tcstok_s_l) __inline char *  _tcstok_l(_Inout_opt_z_ char * _String,_In_z_ const char * _Delimiters, _In_opt_ _locale_t _Locale)
1563 {
1564         return (char * )_mbstok_l((unsigned char *)_String,(const unsigned char *)_Delimiters, _Locale);
1565 }
1566 
1567 _Check_return_ __inline char *  _tcstok_s_l(_Inout_opt_z_ char * _String,_In_z_ const char * _Delimiters, _Inout_ _Deref_prepost_opt_z_ char **_Current_position, _In_opt_ _locale_t _Locale)
1568 {
1569         return (char * )_mbstok_s_l((unsigned char *)_String,(const unsigned char *)_Delimiters, (unsigned char **)_Current_position, _Locale);
1570 }
1571 
1572 _Check_return_wat_ __inline errno_t _tcsnset_s(_Inout_updates_z_(_SizeInBytes) char * _Dst, _In_ size_t _SizeInBytes, _In_ unsigned int _Value , _In_ size_t _Count)
1573 {
1574     return _mbsnbset_s((unsigned char *)_Dst, _SizeInBytes, _Value, _Count);
1575 }
1576 
1577 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, _tcsnset_s, _Prepost_z_ char, _Dest, _In_ unsigned int, _Value , _In_ size_t, _Count)
1578 
1579 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(char *, __RETURN_POLICY_DST, _tcsnset, _tcsnset_s, _Inout_updates_z_(_Size) char, _Inout_updates_z_(_Count) char, _Dst, _In_ unsigned int, _Value , _In_ size_t, _Count)
1580 {
1581     return (char *)_mbsnbset((unsigned char *)_Dst, _Value, _Count);
1582 }
1583 
1584 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(char *, __RETURN_POLICY_DST, _tcsnset, _tcsnset_s, _Inout_updates_z_(_Size) char, _Inout_updates_z_(_Count), char, _Dst, _In_ unsigned int, _Value , _In_ size_t, _Count)
1585 
1586 _Check_return_wat_ __inline errno_t _tcsnset_s_l(_Inout_updates_z_(_SizeInBytes) char * _Dst, _In_ size_t _SizeInBytes, _In_ unsigned int _Value , _In_ size_t _Count, _In_opt_ _locale_t _Locale)
1587 {
1588     return _mbsnbset_s_l((unsigned char *)_Dst, _SizeInBytes, _Value, _Count, _Locale);
1589 }
1590 
1591 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t, _tcsnset_s_l, _Prepost_z_ char, _Dest, _In_ unsigned int, _Value , _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1592 
1593 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _tcsnset_l, _tcsnset_s_l, _Inout_updates_z_(_Size) char, _Inout_updates_z_(_Count) char, _Dst, _In_ unsigned int, _Value , _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1594 {
1595     return (char *)_mbsnbset_l((unsigned char *)_Dst, _Value, _Count, _Locale);
1596 }
1597 
1598 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _tcsnset_l, _tcsnset_s_l, _Inout_updates_z_(_Size) char, _Inout_updates_z_(_Count), char, _Dst, _In_ unsigned int, _Value , _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1599 
1600 __inline _PC _tcsrev(_Inout_z_ _PC _s1) {return (_PC)_mbsrev((_PUC)_s1);}
1601 
1602 _Check_return_wat_ __inline errno_t _tcsset_s(_Inout_updates_z_(_SizeInBytes) char * _Dst, _In_ size_t _SizeInBytes, _In_ unsigned int _Value)
1603 {
1604     return _mbsset_s((unsigned char *)_Dst, _SizeInBytes, _Value);
1605 }
1606 
1607 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, _tcsset_s, _Prepost_z_ char, _Dest, _In_ unsigned int, _Value)
1608 
1609 __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(char *, __RETURN_POLICY_DST, _tcsset, _tcsset_s, _Inout_updates_z_(_Size) char, _Inout_z_ char, _Dst, _In_ unsigned int, _Value)
1610 {
1611     return (char *)_mbsset((unsigned char *)_Dst, _Value);
1612 }
1613 
1614 __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(char *, __RETURN_POLICY_DST, _tcsset, _tcsset_s, _Inout_updates_z_(_Size) char, _Inout_z_ char, _Dst, _In_ unsigned int, _Value)
1615 
1616 _Check_return_wat_ __inline errno_t _tcsset_s_l(_Inout_updates_z_(_SizeInBytes) char * _Dst, _In_ size_t _SizeInBytes, _In_ unsigned int _Value, _In_opt_ _locale_t _Locale)
1617 {
1618     return _mbsset_s_l((unsigned char *)_Dst, _SizeInBytes, _Value, _Locale);
1619 }
1620 
1621 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, _tcsset_s_l, _Prepost_z_ char, _Dest, _In_ unsigned int, _Value, _In_opt_ _locale_t, _Locale)
1622 
1623 __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(char *, __RETURN_POLICY_DST, _tcsset_l, _tcsset_s_l, _Inout_updates_z_(_Size) char, _Inout_z_ char, _Dst, _In_ unsigned int, _Value, _In_opt_ _locale_t, _Locale)
1624 {
1625     return (char *)_mbsset_l((unsigned char *)_Dst, _Value, _Locale);
1626 }
1627 
1628 __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(char *, __RETURN_POLICY_DST, _tcsset_l, _tcsset_s_l, _Inout_updates_z_(_Size) char, _Inout_z_, char, _Dst, _In_ unsigned int, _Value, _In_opt_ _locale_t, _Locale)
1629 
1630 _Check_return_ __inline int _tcscmp(_In_z_ _CPC _s1,_In_z_ _CPC _s2) {return _mbscmp((_CPUC)_s1,(_CPUC)_s2);}
1631 
1632 _Check_return_ __inline int _tcsicmp(_In_z_ const char * _String1, _In_z_ const char * _String2)
1633 {
1634     return _mbsicmp((const unsigned char *)_String1,(const unsigned char *)_String2);
1635 }
1636 
1637 _Check_return_ __inline int _tcsicmp_l(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_opt_ _locale_t _Locale)
1638 {
1639     return _mbsicmp_l((const unsigned char *)_String1,(const unsigned char *)_String2, _Locale);
1640 }
1641 
1642 _Check_return_ __inline int _tcsnccmp(_In_reads_or_z_(_n) _CPC _s1,_In_z_ _CPC _s2,_In_ size_t _n) {return _mbsncmp((_CPUC)_s1,(_CPUC)_s2,_n);}
1643 __inline int _tcsncmp(_In_z_ _CPC _s1,_In_z_ _CPC _s2,_In_ size_t _n) {return _mbsnbcmp((_CPUC)_s1,(_CPUC)_s2,_n);}
1644 
1645 _Check_return_ __inline int _tcsncicmp(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_ size_t _Char_count)
1646 {
1647     return _mbsnicmp((const unsigned char *)_String1,(const unsigned char *)_String2,_Char_count);
1648 }
1649 
1650 _Check_return_ __inline int _tcsncicmp_l(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_ size_t _Char_count, _In_opt_ _locale_t _Locale)
1651 {
1652     return _mbsnicmp_l((const unsigned char *)_String1,(const unsigned char *)_String2,_Char_count, _Locale);
1653 }
1654 
1655 _Check_return_ __inline int _tcsnicmp(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_ size_t _Char_count)
1656 {
1657     return _mbsnbicmp((const unsigned char *)_String1,(const unsigned char *)_String2,_Char_count);
1658 }
1659 
1660 _Check_return_ __inline int _tcsnicmp_l(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_ size_t _Char_count, _In_opt_ _locale_t _Locale)
1661 {
1662     return _mbsnbicmp_l((const unsigned char *)_String1,(const unsigned char *)_String2,_Char_count, _Locale);
1663 }
1664 
1665 _Check_return_ __inline int _tcscoll(_In_z_ const char * _String1, _In_z_ const char * _String2)
1666 {
1667     return _mbscoll((const unsigned char *)_String1,(const unsigned char *)_String2);
1668 }
1669 
1670 _Check_return_ __inline int _tcscoll_l(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_opt_ _locale_t _Locale)
1671 {
1672     return _mbscoll_l((const unsigned char *)_String1,(const unsigned char *)_String2, _Locale);
1673 }
1674 
1675 _Check_return_ __inline int _tcsicoll(_In_z_ const char * _String1, _In_z_ const char * _String2)
1676 {
1677     return _mbsicoll((const unsigned char *)_String1,(const unsigned char *)_String2);
1678 }
1679 
1680 _Check_return_ __inline int _tcsicoll_l(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_opt_ _locale_t _Locale)
1681 {
1682     return _mbsicoll_l((const unsigned char *)_String1,(const unsigned char *)_String2, _Locale);
1683 }
1684 
1685 _Check_return_ __inline int _tcsnccoll(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_ size_t _Count)
1686 {
1687     return _mbsncoll((const unsigned char *)_String1,(const unsigned char *)_String2, _Count);
1688 }
1689 
1690 _Check_return_ __inline int _tcsnccoll_l(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
1691 {
1692     return _mbsncoll_l((const unsigned char *)_String1,(const unsigned char *)_String2, _Count, _Locale);
1693 }
1694 
1695 _Check_return_ __inline int _tcsncoll(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_ size_t _Count)
1696 {
1697     return _mbsnbcoll((const unsigned char *)_String1,(const unsigned char *)_String2, _Count);
1698 }
1699 
1700 _Check_return_ __inline int _tcsncoll_l(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
1701 {
1702     return _mbsnbcoll_l((const unsigned char *)_String1,(const unsigned char *)_String2, _Count, _Locale);
1703 }
1704 
1705 _Check_return_ __inline int _tcsncicoll(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_ size_t _Count)
1706 {
1707     return _mbsnicoll((const unsigned char *)_String1,(const unsigned char *)_String2, _Count);
1708 }
1709 
1710 _Check_return_ __inline int _tcsncicoll_l(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
1711 {
1712     return _mbsnicoll_l((const unsigned char *)_String1,(const unsigned char *)_String2, _Count, _Locale);
1713 }
1714 
1715 _Check_return_ __inline int _tcsnicoll(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_ size_t _Count)
1716 {
1717     return _mbsnbicoll((const unsigned char *)_String1,(const unsigned char *)_String2, _Count);
1718 }
1719 
1720 _Check_return_ __inline int _tcsnicoll_l(_In_z_ const char * _String1, _In_z_ const char * _String2, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
1721 {
1722     return _mbsnbicoll_l((const unsigned char *)_String1,(const unsigned char *)_String2, _Count, _Locale);
1723 }
1724 
1725 /* "logical-character" mappings */
1726 _Check_return_ __inline size_t _tcsclen(_In_z_ const char * _String)
1727 {
1728     return _mbslen((const unsigned char *)_String);
1729 }
1730 
1731 _Check_return_ __inline size_t _tcscnlen(_In_z_ const char * _String, _In_ size_t _Maximum)
1732 {
1733     return _mbsnlen((const unsigned char *)_String, _Maximum);
1734 }
1735 
1736 _Check_return_ __inline size_t _tcsclen_l(_In_z_ const char * _String, _In_opt_ _locale_t _Locale)
1737 {
1738     return _mbslen_l((const unsigned char *)_String, _Locale);
1739 }
1740 
1741 _Check_return_ __inline size_t _tcscnlen_l(_In_z_ const char * _String, _In_ size_t _Maximum, _In_opt_ _locale_t _Locale)
1742 {
1743     return _mbsnlen_l((const unsigned char *)_String, _Maximum, _Locale);
1744 }
1745 
1746 _Check_return_wat_ __inline errno_t _tcsnccat_s(_Inout_updates_z_(_Destination_size_chars) char * _Destination, _In_ size_t _Destination_size_chars, _In_z_ const char * _Source, _In_ size_t _Count)
1747 {
1748     return _mbsncat_s((unsigned char *)_Destination, _Destination_size_chars, (const unsigned char *)_Source, _Count);
1749 }
1750 
1751 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, _tcsnccat_s, _Prepost_z_ char, _Dest, _In_z_ const char *, _Source, _In_ size_t, _Count)
1752 
1753 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(char *, __RETURN_POLICY_DST, _tcsnccat, _tcsnccat_s, _Inout_updates_z_(_Size) char, _Inout_z_ char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count)
1754 {
1755     return (char *)_mbsncat((unsigned char *)_Dst,(const unsigned char *)_Source, _Count);
1756 }
1757 
1758 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(char *, __RETURN_POLICY_DST, _tcsnccat, _tcsnccat_s, _Inout_updates_z_(_Size) char, _Inout_z_, char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count)
1759 
1760 _Check_return_wat_ __inline errno_t _tcsnccat_s_l(_Inout_updates_z_(_Destination_size_chars) char * _Destination, _In_ size_t _Destination_size_chars, _In_z_ const char * _Source, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
1761 {
1762     return _mbsncat_s_l((unsigned char *)_Destination, _Destination_size_chars, (const unsigned char *)_Source, _Count, _Locale);
1763 }
1764 
1765 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t, _tcsnccat_s_l, _Prepost_z_ char, _Dest, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1766 
1767 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _tcsnccat_l, _tcsnccat_s_l, _Inout_updates_z_(_Size) char, _Inout_z_ char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1768 {
1769     return (char *)_mbsncat_l((unsigned char *)_Dst,(const unsigned char *)_Source, _Count, _Locale);
1770 }
1771 
1772 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _tcsnccat_l, _tcsnccat_s_l, _Inout_updates_z_(_Size) char, _Inout_z_, char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1773 
1774 _Check_return_wat_ __inline errno_t _tcsnccpy_s(_Out_writes_z_(_Destination_size_chars) char * _Destination, _In_ size_t _Destination_size_chars, _In_z_ const char * _Source, _In_ size_t _Count)
1775 {
1776     return _mbsncpy_s((unsigned char *)_Destination, _Destination_size_chars, (const unsigned char *)_Source, _Count);
1777 }
1778 
1779 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, _tcsnccpy_s, _Post_z_ char, _Dest, _In_z_ const char *, _Source, _In_ size_t, _Count)
1780 
1781 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(char *, __RETURN_POLICY_DST, _tcsnccpy, _tcsnccpy_s, _Out_writes_bytes_(_Size) _Post_maybez_ char, _Pre_notnull_ _Post_maybez_ char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count)
1782 {
1783     return (char *)_mbsncpy((unsigned char *)_Dst,(const unsigned char *)_Source, _Count);
1784 }
1785 
1786 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(char *, __RETURN_POLICY_DST, _tcsnccpy, _tcsnccpy_s, _Out_writes_z_(_Size) char, _Pre_notnull_ _Post_z_, char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count)
1787 
1788 _Check_return_wat_ __inline errno_t _tcsnccpy_s_l(_Out_writes_z_(_Destination_size_chars) char * _Destination, _In_ size_t _Destination_size_chars, _In_z_ const char * _Source, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
1789 {
1790     return _mbsncpy_s_l((unsigned char *)_Destination, _Destination_size_chars, (const unsigned char *)_Source, _Count, _Locale);
1791 }
1792 
1793 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t, _tcsnccpy_s_l, _Post_z_ char, _Dest, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1794 
1795 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _tcsnccpy_l, _tcsnccpy_s_l, _Out_writes_z_(_Size) char, _Out_writes_bytes_(_Count) _Post_maybez_ char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1796 {
1797     return (char *)_mbsncpy_l((unsigned char *)_Dst,(const unsigned char *)_Source, _Count, _Locale);
1798 }
1799 
1800 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _tcsnccpy_l, _tcsnccpy_s_l, _Out_writes_z_(_Size) char, _Out_writes_bytes_(_Count) _Post_maybez_, char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1801 
1802 _Check_return_wat_ __inline errno_t _tcsncset_s(_Inout_updates_bytes_(_SizeInBytes) char *_Destination, _In_ size_t _SizeInBytes, _In_ unsigned int _Value, _In_ size_t _Count)
1803 {
1804     return _mbsnset_s((unsigned char *)_Destination, _SizeInBytes, _Value, _Count);
1805 }
1806 
1807 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, _tcsncset_s, char, _Dest, _In_ unsigned int, _Value, _In_ size_t, _Count)
1808 
1809 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(char *, __RETURN_POLICY_DST, _tcsncset, _tcsncset_s, _Inout_updates_z_(_Size) char, _Inout_updates_bytes_(_Count) char, _Dst, _In_ unsigned int, _Value, _In_ size_t, _Count)
1810 {
1811     return (char *)_mbsnset((unsigned char *)_Dst, _Value, _Count);
1812 }
1813 
1814 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(char *, __RETURN_POLICY_DST, _tcsncset, _tcsncset_s, _Inout_updates_z_(_Size) char, _Inout_updates_bytes_(_Count), char, _Dst, _In_ unsigned int, _Value, _In_ size_t, _Count)
1815 
1816 _Check_return_wat_ __inline errno_t _tcsncset_s_l(_Inout_updates_bytes_(_SizeInBytes) char *_Destination, _In_ size_t _SizeInBytes, _In_ unsigned int _Value, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
1817 {
1818     return _mbsnset_s_l((unsigned char *)_Destination, _SizeInBytes, _Value, _Count, _Locale);
1819 }
1820 
1821 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t, _tcsncset_s_l, char, _Dest, _In_ unsigned int, _Value, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1822 
1823 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _tcsncset_l, _tcsncset_s_l, _Inout_updates_z_(_Size) char, _Inout_updates_bytes_(_Count) char, _Dst, _In_ unsigned int, _Value, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1824 {
1825     return (char *)_mbsnset_l((unsigned char *)_Dst, _Value, _Count, _Locale);
1826 }
1827 
1828 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _tcsncset_l, _tcsncset_s_l, _Inout_updates_z_(_Size) char, _Inout_updates_bytes_(_Count), char, _Dst, _In_ unsigned int, _Value, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
1829 
1830 /* MBCS-specific mappings */
1831 
1832 _Check_return_ __inline _PC _tcsdec(_In_reads_z_(_s2 - _s1 + 1) _CPC _s1,_In_z_ _CPC _s2) {return (_PC)_mbsdec((_CPUC)_s1,(_CPUC)_s2);}
1833 _Check_return_ __inline _PC _tcsinc(_In_z_ _CPC _s1) {return (_PC)_mbsinc((_CPUC)_s1);}
1834 _Check_return_ __inline size_t _tcsnbcnt(_In_reads_or_z_(_n) _CPC _s1,_In_ size_t _n) {return _mbsnbcnt((_CPUC)_s1,_n);}
1835 _Check_return_ __inline size_t _tcsnccnt(_In_reads_or_z_(_n) _CPC _s1,_In_ size_t _n) {return _mbsnccnt((_CPUC)_s1,_n);}
1836 _Check_return_ __inline _PC _tcsninc(_In_reads_or_z_(_n) _CPC _s1,_In_ size_t _n) {return (_PC)_mbsninc((_CPUC)_s1,_n);}
1837 _Check_return_ __inline _PC _tcsspnp(_In_z_ _CPC _s1,_In_z_ _CPC _s2) {return (_PC)_mbsspnp((_CPUC)_s1,(_CPUC)_s2);}
1838 
1839 _Check_return_wat_ __inline errno_t _tcslwr_s(_Inout_updates_z_(_SizeInBytes) char * _String, size_t _SizeInBytes)
1840 {
1841     return _mbslwr_s((unsigned char *)_String, _SizeInBytes);
1842 }
1843 
1844 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(errno_t, _tcslwr_s, _Prepost_z_ char, _String)
1845 
1846 __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(char *, __RETURN_POLICY_DST, _tcslwr, _tcslwr_s, _Inout_updates_z_(_Size) char, _Inout_z_ char, _String)
1847 {
1848     return (char *)_mbslwr((unsigned char *)_String);
1849 }
1850 
1851 __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(char *, __RETURN_POLICY_DST, _tcslwr, _tcslwr_s, _Inout_updates_z_(_Size) char, _Inout_z_ char, _String)
1852 
1853 _Check_return_wat_ __inline errno_t _tcslwr_s_l(_Inout_updates_z_(_SizeInBytes) char * _String, _In_ size_t _SizeInBytes, _In_opt_ _locale_t _Locale)
1854 {
1855     return _mbslwr_s_l((unsigned char *)_String, _SizeInBytes, _Locale);
1856 }
1857 
1858 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, _tcslwr_s_l, _Prepost_z_ char, _String, _In_opt_ _locale_t, _Locale)
1859 
1860 __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(char *, __RETURN_POLICY_DST, _tcslwr_l, _tcslwr_s_l, _Inout_updates_z_(_Size) char, _Inout_z_ char, _String, _In_opt_ _locale_t, _Locale)
1861 {
1862     return (char *)_mbslwr_l((unsigned char *)_String, _Locale);
1863 }
1864 
1865 __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(char *, __RETURN_POLICY_DST, _tcslwr_l, _tcslwr_s_l, _Inout_updates_z_(_Size) char, _Inout_z_ char, _String, _In_opt_ _locale_t, _Locale)
1866 
1867 _Check_return_wat_ __inline errno_t _tcsupr_s(_Inout_updates_z_(_Count) char * _String, _In_ size_t _Count)
1868 {
1869     return _mbsupr_s((unsigned char *)_String, _Count);
1870 }
1871 
1872 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(errno_t, _tcsupr_s, _Prepost_z_ char, _String)
1873 
1874 __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(char *, __RETURN_POLICY_DST, _tcsupr, _tcsupr_s, _Inout_updates_z_(_Size) char, _Inout_z_ char, _String)
1875 {
1876     return (char *)_mbsupr((unsigned char *)_String);
1877 }
1878 
1879 __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(char *, __RETURN_POLICY_DST, _tcsupr, _tcsupr_s, _Inout_updates_z_(_Size) char, _Inout_z_ char, _String)
1880 
1881 _Check_return_wat_ __inline errno_t _tcsupr_s_l(_Inout_updates_z_(_Count) char * _String, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
1882 {
1883     return _mbsupr_s_l((unsigned char *)_String, _Count, _Locale);
1884 }
1885 
1886 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, _tcsupr_s_l, _Prepost_z_ char, _String, _In_opt_ _locale_t, _Locale)
1887 
1888 __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(char *, __RETURN_POLICY_DST, _tcsupr_l, _tcsupr_s_l, _Inout_updates_z_(_Size) char, _Inout_z_ char, _String, _In_opt_ _locale_t, _Locale)
1889 {
1890     return (char *)_mbsupr_l((unsigned char *)_String, _Locale);
1891 }
1892 
1893 __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(char *, __RETURN_POLICY_DST, _tcsupr_l, _tcsupr_s_l, _Inout_updates_z_(_Size) char, _Inout_z_ char, _String, _In_opt_ _locale_t, _Locale)
1894 
1895 _Check_return_ __inline size_t _tclen(_In_z_ _CPC _s1) {return _mbclen((_CPUC)_s1);}
1896 
1897 _Check_return_wat_ __inline errno_t _tccpy_s(_Out_writes_z_(_SizeInBytes) char * _Destination, size_t _SizeInBytes, _Out_opt_ int *_PCopied, _In_z_ const char * _Source)
1898 {
1899     return _mbccpy_s((unsigned char *)_Destination, _SizeInBytes, _PCopied, (const unsigned char *)_Source);
1900 }
1901 
1902 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, _tccpy_s, _Post_z_ char, _Dest, _Out_opt_  int *, _PCopied, _In_z_ const char *, _Source)
1903 
1904 _CRT_INSECURE_DEPRECATE(_tccpy_s) __inline void _tccpy(_Out_writes_z_(2) char * _Destination, _In_z_ const char * _Source)
1905 {
1906     _mbccpy((unsigned char *)_Destination, (const unsigned char *)_Source);
1907 }
1908 
1909 _Check_return_wat_ __inline errno_t _tccpy_s_l(_Out_writes_z_(_SizeInBytes) char * _Destination, _In_ size_t _SizeInBytes, _Out_opt_ int *_PCopied, _In_z_ const char * _Source, _In_opt_ _locale_t _Locale)
1910 {
1911     return _mbccpy_s_l((unsigned char *)_Destination, _SizeInBytes, _PCopied, (const unsigned char *)_Source, _Locale);
1912 }
1913 
1914 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t, _tccpy_s_l, _Post_z_ char, _Dest, _Out_opt_ int *, _PCopied, _In_z_ const char *, _Source, _In_opt_ _locale_t, _Locale)
1915 
1916 _CRT_INSECURE_DEPRECATE(_tccpy_s_l) __inline void _tccpy_l(_Out_writes_z_(2) char * _Destination, _In_z_ const char * _Source, _In_opt_ _locale_t _Locale)
1917 {
1918     _mbccpy_l((unsigned char *)_Destination,( const unsigned char *)_Source, _Locale);
1919 }
1920 
1921 /* inline helper */
1922 _Check_return_ __inline _UI _tcsnextc(_In_z_ _CPC _s1)
1923 {
1924     _UI _n=0;
1925     if (_ismbblead((_UI)*(_PUC)_s1))
1926     {
1927         /*  for a dud MBCS string (leadbyte, EOS), we don't move forward 2
1928             We do not assert here because this routine is too low-level
1929         */
1930         if(_s1[1]!='\0')
1931         {
1932             _n=((_UI)*(_PUC)_s1)<<8;
1933             _s1++;
1934         }
1935     }
1936     _n+=(_UI)*(_PUC)_s1;
1937 
1938     return(_n);
1939 }
1940 
1941 #endif  /* __STDC__ || defined (_NO_INLINING) */
1942 
1943 #ifdef __cplusplus
1944 #ifndef _CPP_TCHAR_INLINES_DEFINED
1945 #define _CPP_TCHAR_INLINES_DEFINED
1946 extern "C++" {
1947 _Check_return_ inline char * __CRTDECL _tcschr(_In_z_ char *_S, _In_ unsigned int _C)
1948         {return ((char *)_tcschr((const char *)_S, _C)); }
1949 _Check_return_ inline char * __CRTDECL _tcspbrk(_In_z_ char *_S, _In_z_ const char *_P)
1950         {return ((char *)_tcspbrk((const char *)_S, _P)); }
1951 _Check_return_ inline char * __CRTDECL _tcsrchr(_In_z_ char *_S, _In_ unsigned int _C)
1952         {return ((char *)_tcsrchr((const char *)_S, _C)); }
1953 _Check_return_ inline char * __CRTDECL _tcsstr(_In_z_ char *_S, _In_z_ const char *_P)
1954         {return ((char *)_tcsstr((const char *)_S, _P)); }
1955 }
1956 #endif  /* _CPP_TCHAR_INLINES_DEFINED */
1957 #endif  /* __cplusplus */
1958 
1959 #endif  /* _MB_MAP_DIRECT */
1960 
1961 
1962 /* MBCS-specific mappings */
1963 
1964 #define _tccmp(_cp1,_cp2)   _tcsnccmp(_cp1,_cp2,1)
1965 
1966 
1967 /* ctype functions */
1968 
1969 #define _istalnum       _ismbcalnum
1970 #define _istalnum_l     _ismbcalnum_l
1971 #define _istalpha       _ismbcalpha
1972 #define _istalpha_l     _ismbcalpha_l
1973 #define _istdigit       _ismbcdigit
1974 #define _istdigit_l     _ismbcdigit_l
1975 #define _istgraph       _ismbcgraph
1976 #define _istgraph_l     _ismbcgraph_l
1977 #define _istlegal       _ismbclegal
1978 #define _istlegal_l     _ismbclegal_l
1979 #define _istlower       _ismbclower
1980 #define _istlower_l     _ismbclower_l
1981 #define _istprint       _ismbcprint
1982 #define _istprint_l     _ismbcprint_l
1983 #define _istpunct       _ismbcpunct
1984 #define _istpunct_l     _ismbcpunct_l
1985 #define _istblank       _ismbcblank
1986 #define _istblank_l     _ismbcblank_l
1987 #define _istspace       _ismbcspace
1988 #define _istspace_l     _ismbcspace_l
1989 #define _istupper       _ismbcupper
1990 #define _istupper_l     _ismbcupper_l
1991 
1992 #define _totupper       _mbctoupper
1993 #define _totupper_l     _mbctoupper_l
1994 #define _totlower       _mbctolower
1995 #define _totlower_l     _mbctolower_l
1996 
1997 #define _istlead        _ismbblead
1998 #define _istleadbyte    isleadbyte
1999 #define _istleadbyte_l  _isleadbyte_l
2000 
2001 #else  /* _MBCS */
2002 
2003 /* ++++++++++++++++++++ SBCS ++++++++++++++++++++ */
2004 
2005 
2006 #ifndef __TCHAR_DEFINED
2007 typedef char            _TCHAR;
2008 typedef signed char     _TSCHAR;
2009 typedef unsigned char   _TUCHAR;
2010 typedef char            _TXCHAR;
2011 typedef int             _TINT;
2012 #define __TCHAR_DEFINED
2013 #endif  /* __TCHAR_DEFINED */
2014 
2015 #if defined(_CRT_INTERNAL_NONSTDC_NAMES) && _CRT_INTERNAL_NONSTDC_NAMES
2016 #ifndef _TCHAR_DEFINED
2017 typedef char            TCHAR;
2018 typedef char *          PTCHAR;
2019 typedef unsigned char   TBYTE;
2020 typedef unsigned char * PTBYTE;
2021 #define _TCHAR_DEFINED
2022 #endif  /* _TCHAR_DEFINED */
2023 #endif  /* _CRT_INTERNAL_NONSTDC_NAMES */
2024 
2025 
2026 /* String functions */
2027 
2028 #define _tcschr         strchr
2029 #define _tcscspn        strcspn
2030 #define _tcsncat        strncat
2031 #define _tcsncat_s      strncat_s
2032 #define _tcsncat_l      _strncat_l
2033 #define _tcsncat_s_l    _strncat_s_l
2034 #define _tcsncpy        strncpy
2035 #define _tcsncpy_s      strncpy_s
2036 #define _tcsncpy_l      _strncpy_l
2037 #define _tcsncpy_s_l    _strncpy_s_l
2038 #define _tcspbrk        strpbrk
2039 #define _tcsrchr        strrchr
2040 #define _tcsspn         strspn
2041 #define _tcsstr         strstr
2042 #define _tcstok         strtok
2043 #define _tcstok_s       strtok_s
2044 #define _tcstok_l       _strtok_l
2045 #define _tcstok_s_l     _strtok_s_l
2046 
2047 #define _tcsnset        _strnset
2048 #define _tcsnset_s      _strnset_s
2049 #define _tcsnset_l      _strnset_l
2050 #define _tcsnset_s_l    _strnset_s_l
2051 #define _tcsrev         _strrev
2052 #define _tcsset         _strset
2053 #define _tcsset_s       _strset_s
2054 #define _tcsset_l       _strset_l
2055 #define _tcsset_s_l     _strset_s_l
2056 
2057 #define _tcscmp         strcmp
2058 #define _tcsicmp        _stricmp
2059 #define _tcsicmp_l      _stricmp_l
2060 #define _tcsnccmp       strncmp
2061 #define _tcsncmp        strncmp
2062 #define _tcsncicmp      _strnicmp
2063 #define _tcsncicmp_l    _strnicmp_l
2064 #define _tcsnicmp       _strnicmp
2065 #define _tcsnicmp_l     _strnicmp_l
2066 
2067 #define _tcscoll        strcoll
2068 #define _tcscoll_l      _strcoll_l
2069 #define _tcsicoll       _stricoll
2070 #define _tcsicoll_l     _stricoll_l
2071 #define _tcsnccoll      _strncoll
2072 #define _tcsnccoll_l    _strncoll_l
2073 #define _tcsncoll       _strncoll
2074 #define _tcsncoll_l     _strncoll_l
2075 #define _tcsncicoll     _strnicoll
2076 #define _tcsncicoll_l   _strnicoll_l
2077 #define _tcsnicoll      _strnicoll
2078 #define _tcsnicoll_l    _strnicoll_l
2079 
2080 /* "logical-character" mappings */
2081 
2082 #define _tcsclen        strlen
2083 #define _tcscnlen       strnlen
2084 #define _tcsclen_l(_String, _Locale) strlen(_String)
2085 #define _tcscnlen_l(_String, _Max_count, _Locale) strnlen((_String), (_Max_count))
2086 #define _tcsnccat       strncat
2087 #define _tcsnccat_s     strncat_s
2088 #define _tcsnccat_l     _strncat_l
2089 #define _tcsnccat_s_l   _strncat_s_l
2090 #define _tcsnccpy       strncpy
2091 #define _tcsnccpy_s     strncpy_s
2092 #define _tcsnccpy_l     _strncpy_l
2093 #define _tcsnccpy_s_l   _strncpy_s_l
2094 #define _tcsncset       _strnset
2095 #define _tcsncset_s     _strnset_s
2096 #define _tcsncset_l     _strnset_l
2097 #define _tcsncset_s_l   _strnset_s_l
2098 
2099 /* MBCS-specific functions */
2100 
2101 #define _tcsdec     _strdec
2102 #define _tcsinc     _strinc
2103 #define _tcsnbcnt   _strncnt
2104 #define _tcsnccnt   _strncnt
2105 #define _tcsnextc   _strnextc
2106 #define _tcsninc    _strninc
2107 #define _tcsspnp    _strspnp
2108 
2109 #define _tcslwr     _strlwr
2110 #define _tcslwr_l   _strlwr_l
2111 #define _tcslwr_s   _strlwr_s
2112 #define _tcslwr_s_l _strlwr_s_l
2113 #define _tcsupr     _strupr
2114 #define _tcsupr_l   _strupr_l
2115 #define _tcsupr_s   _strupr_s
2116 #define _tcsupr_s_l _strupr_s_l
2117 #define _tcsxfrm    strxfrm
2118 #define _tcsxfrm_l  _strxfrm_l
2119 
2120 #define _istlead(_Char)                 (0)
2121 #define _istleadbyte(_Char)             (0)
2122 #define _istleadbyte_l(_Char, _Locale)  (0)
2123 
2124 #if __STDC__ || defined (_NO_INLINING)
2125 #define _tclen(_pc) (1)
2126 #define _tccpy(_pc1,_cpc2) (*(_pc1) = *(_cpc2))
2127 #define _tccpy_l(_pc1,_cpc2,_locale) _tccpy((_pc1),(_cpc2))
2128 #define _tccmp(_cpc1,_cpc2) (((unsigned char)*(_cpc1))-((unsigned char)*(_cpc2)))
2129 #else  /* __STDC__ || defined (_NO_INLINING) */
2130 _Check_return_ __inline size_t __CRTDECL _tclen(_In_z_ const char *_cpc)
2131 {
2132     _CRT_UNUSED(_cpc);
2133     return 1;
2134 }
2135 __inline void __CRTDECL _tccpy(_Out_ char *_pc1, _In_z_ const char *_cpc2) { *_pc1 = *_cpc2; }
2136 __inline void __CRTDECL _tccpy_l(_Out_ char *_Pc1, _In_z_ const char *_Cpc2, _In_opt_ _locale_t _Locale)
2137 {
2138     _CRT_UNUSED(_Locale);
2139     _tccpy(_Pc1, _Cpc2);
2140 }
2141 _Check_return_ __inline int __CRTDECL _tccmp(_In_z_ const char *_cpc1, _In_z_ const char *_cpc2) { return (int) (((unsigned char)*_cpc1)-((unsigned char)*_cpc2)); }
2142 #endif  /* __STDC__ || defined (_NO_INLINING) */
2143 
2144 
2145 /* ctype-functions */
2146 
2147 #define _istalnum   isalnum
2148 #define _istalnum_l   _isalnum_l
2149 #define _istalpha   isalpha
2150 #define _istalpha_l   _isalpha_l
2151 #define _istdigit   isdigit
2152 #define _istdigit_l   _isdigit_l
2153 #define _istgraph   isgraph
2154 #define _istgraph_l   _isgraph_l
2155 #define _istlower   islower
2156 #define _istlower_l   _islower_l
2157 #define _istprint   isprint
2158 #define _istprint_l   _isprint_l
2159 #define _istpunct   ispunct
2160 #define _istpunct_l   _ispunct_l
2161 #define _istblank   isblank
2162 #define _istblank_l   _isblank_l
2163 #define _istspace   isspace
2164 #define _istspace_l   _isspace_l
2165 #define _istupper   isupper
2166 #define _istupper_l   _isupper_l
2167 
2168 #define _totupper   toupper
2169 #define _totupper_l   _toupper_l
2170 #define _totlower   tolower
2171 #define _totlower_l   _tolower_l
2172 
2173 #define _istlegal(_c)   (1)
2174 
2175 
2176 /* the following is optional if functional versions are available */
2177 
2178 #if __STDC__ || defined (_NO_INLINING)
2179 #define _strdec(_cpc1, _cpc2) ((_cpc1)>=(_cpc2) ? NULL : (_cpc2)-1)
2180 #define _strinc(_pc)    ((_pc)+1)
2181 #define _strnextc(_cpc) ((unsigned int) *(const unsigned char *)(_cpc))
2182 #define _strninc(_pc, _sz) (((_pc)+(_sz)))
2183 _ACRTIMP size_t  __cdecl __strncnt(_In_reads_or_z_(_Cnt) const char * _Str, _In_ size_t _Cnt);
2184 #define _strncnt(_cpc, _sz) (__strncnt(_cpc,_sz))
2185 #define _strspnp(_cpc1, _cpc2)                                                          (_cpc1==NULL ? NULL : ((*((_cpc1)+strspn(_cpc1,_cpc2))) ? ((_cpc1)+strspn(_cpc1,_cpc2)) : NULL))
2186 
2187 #define _strncpy_l(_Destination, _Source, _Count, _Locale)                              (strncpy(_Destination, _Source, _Count))
2188 #if __STDC_WANT_SECURE_LIB__
2189 #define _strncpy_s_l(_Destination, _Destination_size_chars, _Source, _Count, _Locale)   (strncpy_s(_Destination, _Destination_size_chars, _Source, _Count))
2190 #endif  /* __STDC_WANT_SECURE_LIB__ */
2191 #define _strncat_l(_Destination, _Source, _Count, _Locale)                              (strncat(_Destination, _Source, _Count))
2192 #if __STDC_WANT_SECURE_LIB__
2193 #define _strncat_s_l(_Destination, _Destination_size_chars, _Source, _Count, _Locale)   (strncat_s(_Destination, _Destination_size_chars, _Source, _Count))
2194 #endif  /* __STDC_WANT_SECURE_LIB__ */
2195 #define _strtok_l(_String, _Delimiters, _Locale)                                        (strtok(_String, _Delimiters))
2196 #if __STDC_WANT_SECURE_LIB__
2197 #define _strtok_s_l(_String, _Delimiters, _Current_position, _Locale)                   (strtok_s(_String, _Delimiters, _Current_position))
2198 #endif  /* __STDC_WANT_SECURE_LIB__ */
2199 #define _strnset_l(_Destination, _Value, _Count, _Locale)                               (_strnset(_Destination, _Value, _Count))
2200 #define _strnset_s_l(_Destination, _Destination_size_chars, _Value, _Count, _Locale)    (_strnset_s(_Destination, _Destination_size_chars, _Value, _Count))
2201 #define _strset_l(_Destination, _Value, _Locale)                                        (_strset(_Destination, _Value))
2202 #define _strset_s_l(_Destination, _Destination_size_chars, _Value, _Locale)             (_strset_s(_Destination, _Destination_size_chars, _Value))
2203 #else  /* __STDC__ || defined (_NO_INLINING) */
2204 _Check_return_ __inline char * __CRTDECL _strdec(_In_reads_z_(_Cpc2 - _Cpc1) const char * _Cpc1, _In_z_ const char * _Cpc2) { return (char *)((_Cpc1)>=(_Cpc2) ? NULL : (_Cpc2-1)); }
2205 _Check_return_ __inline char * __CRTDECL _strinc(_In_z_ const char * _Pc) { return (char *)(_Pc+1); }
2206 _Check_return_ __inline unsigned int __CRTDECL _strnextc(_In_z_ const char * _Cpc) { return (unsigned int)*(const unsigned char *)_Cpc; }
2207 _Check_return_ __inline char * __CRTDECL _strninc(_In_reads_or_z_(_Sz) const char * _Pc, _In_ size_t _Sz) { return (char *)(_Pc+_Sz); }
2208 _Check_return_ __inline size_t __CRTDECL _strncnt(_In_reads_or_z_(_Cnt) const char * _String, _In_ size_t _Cnt)
2209 {
2210         size_t n = _Cnt;
2211         char *cp = (char *)_String;
2212         while (n-- && *cp)
2213                 cp++;
2214         return _Cnt - n - 1;
2215 }
2216 _Check_return_ __inline char * __CRTDECL _strspnp
2217 (
2218     _In_z_ const char * _Cpc1,
2219     _In_z_ const char * _Cpc2
2220 )
2221 {
2222     return _Cpc1==NULL ? NULL : ((*(_Cpc1 += strspn(_Cpc1,_Cpc2))!='\0') ? (char*)_Cpc1 : NULL);
2223 }
2224 
2225 #if __STDC_WANT_SECURE_LIB__
2226 _Check_return_wat_ __inline errno_t __CRTDECL _strncpy_s_l(_Out_writes_z_(_Destination_size_chars) char *_Destination, _In_ size_t _Destination_size_chars, _In_z_ const char *_Source, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
2227 {
2228     _CRT_UNUSED(_Locale);
2229     return strncpy_s(_Destination, _Destination_size_chars, _Source, _Count);
2230 }
2231 #endif  /* __STDC_WANT_SECURE_LIB__ */
2232 
2233 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t, _strncpy_s_l, _Post_z_ char, _Dest, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
2234 
2235 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _strncpy_l, _strncpy_s_l, _Out_writes_z_(_Size) char, _Out_writes_(_Count) char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
2236 {
2237     _CRT_UNUSED(_Locale);
2238     return strncpy(_Dst, _Source, _Count);
2239 }
2240 
2241 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _strncpy_l, _strncpy_s_l, _Out_writes_z_(_Size) char, _Out_writes_(_Count), char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
2242 
2243 #if __STDC_WANT_SECURE_LIB__
2244 _Check_return_wat_ __inline errno_t __CRTDECL _strncat_s_l(_Inout_updates_z_(_Destination_size_chars) char *_Destination, _In_ size_t _Destination_size_chars, _In_z_ const char *_Source, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
2245 {
2246     _CRT_UNUSED(_Locale);
2247     return strncat_s(_Destination, _Destination_size_chars, _Source, _Count);
2248 }
2249 #endif  /* __STDC_WANT_SECURE_LIB__ */
2250 
2251 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t, _strncat_s_l, _Prepost_z_ char, _Dest, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
2252 
2253 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _strncat_l, _strncat_s_l, _Inout_updates_z_(_Size) char, _Inout_z_ char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
2254 {
2255     _CRT_UNUSED(_Locale);
2256 #pragma warning(suppress: 6054) // String may not be zero-terminated
2257     return strncat(_Dst, _Source, _Count);
2258 }
2259 
2260 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _strncat_l, _strncat_s_l, _Inout_updates_z_(_Size) char, _Inout_z_, char, _Dst, _In_z_ const char *, _Source, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
2261 
2262 _Check_return_ _CRT_INSECURE_DEPRECATE(_strtok_s_l) __inline char *  _strtok_l(_Inout_opt_z_ char * _String, _In_z_ const char * _Delimiters, _In_opt_ _locale_t _Locale)
2263 {
2264     _CRT_UNUSED(_Locale);
2265     return strtok(_String,_Delimiters);
2266 }
2267 
2268 #if __STDC_WANT_SECURE_LIB__
2269 _Check_return_ __inline char *  _strtok_s_l(_Inout_opt_z_ char * _String, _In_z_ const char * _Delimiters, _Inout_ _Deref_prepost_opt_z_ char **_Current_position, _In_opt_ _locale_t _Locale)
2270 {
2271     _CRT_UNUSED(_Locale);
2272     return strtok_s(_String, _Delimiters, _Current_position);
2273 }
2274 #endif  /* __STDC_WANT_SECURE_LIB__ */
2275 
2276 __inline errno_t __CRTDECL _strnset_s_l(_Inout_updates_z_(_Destination_size_chars) char *_Destination, _In_ size_t _Destination_size_chars, _In_ int _Value, _In_ size_t _Count, _In_opt_ _locale_t _Locale)
2277 {
2278     _CRT_UNUSED(_Locale);
2279     return _strnset_s(_Destination, _Destination_size_chars, _Value, _Count);
2280 }
2281 
2282 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(errno_t, _strnset_s_l, _Prepost_z_ char, _Dest, _In_ int, _Value, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
2283 
2284 __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _strnset_l, _strnset_s_l, _Inout_updates_z_(_Size) char, _Inout_updates_z_(_MaxCount) char, _Dst, _In_ int, _Value, _In_ size_t, _MaxCount, _In_opt_ _locale_t, _Locale)
2285 {
2286     _CRT_UNUSED(_Locale);
2287 #pragma warning(suppress: 6054) // String may not be zero-terminated
2288     return _strnset(_Dst, _Value, _MaxCount);
2289 }
2290 
2291 __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(char *, __RETURN_POLICY_DST, _strnset_l, _strnset_s_l, _Inout_updates_z_(_Size) char, _Inout_updates_z_(_MaxCount), char, _Dst, _In_ int, _Value, _In_ size_t, _Count, _In_opt_ _locale_t, _Locale)
2292 
2293 __inline errno_t __CRTDECL _strset_s_l(_Inout_updates_z_(_Destination_size_chars) char *_Destination, _In_ size_t _Destination_size_chars, _In_ int _Value, _In_opt_ _locale_t _Locale)
2294 {
2295     _CRT_UNUSED(_Locale);
2296     return _strset_s(_Destination, _Destination_size_chars, _Value);
2297 }
2298 
2299 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, _strset_s_l, _Prepost_z_ char, _Dest, _In_ int, _Value, _In_opt_ _locale_t, _Locale)
2300 
2301 __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(char *, __RETURN_POLICY_DST, _strset_l, _strset_s_l, _Inout_updates_z_(_Size) char, _Inout_z_ char, _Dst, _In_ int, _Value, _In_opt_ _locale_t, _Locale)
2302 {
2303     _CRT_UNUSED(_Locale);
2304     return _strset(_Dst, _Value);
2305 }
2306 
2307 __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(char *, __RETURN_POLICY_DST, _strset_l, _strset_s_l, _Inout_updates_z_(_Size) char, _Inout_z_, char, _Dst, _In_ int, _Value, _In_opt_ _locale_t, _Locale)
2308 
2309 #endif  /* __STDC__ || defined (_NO_INLINING) */
2310 
2311 
2312 #endif  /* _MBCS */
2313 
2314 #endif  /* _UNICODE */
2315 
2316 
2317 /* Generic text macros to be used with string literals and character constants.
2318    Will also allow symbolic constants that resolve to same. */
2319 
2320 #define _T(x)       __T(x)
2321 #define _TEXT(x)    __T(x)
2322 
2323 
2324 #ifdef __cplusplus
2325 }   /* ... extern "C" */
2326 #endif  /* __cplusplus */
2327 _UCRT_RESTORE_CLANG_WARNINGS
2328 #pragma warning(pop) // _UCRT_DISABLED_WARNINGS
2329 #endif  /* _INC_TCHAR */
2330 
2331