123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
- /*
- * nsis_tchar.h
- *
- * This file is a part of NSIS.
- *
- * Copyright (C) 1999-2023 Nullsoft and Contributors
- *
- * This software is provided 'as-is', without any express or implied
- * warranty.
- *
- * For Unicode support by Jim Park -- 08/30/2007
- */
- // Jim Park: Only those we use are listed here.
- #pragma once
- #ifdef _UNICODE
- #ifndef _T
- #define __T(x) L ## x
- #define _T(x) __T(x)
- #define _TEXT(x) __T(x)
- #endif
- #ifndef _TCHAR_DEFINED
- #define _TCHAR_DEFINED
- #if !defined(_NATIVE_WCHAR_T_DEFINED) && !defined(_WCHAR_T_DEFINED)
- typedef unsigned short TCHAR;
- #else
- typedef wchar_t TCHAR;
- #endif
- #endif
- // program
- #define _tenviron _wenviron
- #define __targv __wargv
- // printfs
- #define _ftprintf fwprintf
- #define _sntprintf _snwprintf
- #if (defined(_MSC_VER) && (_MSC_VER<=1310||_MSC_FULL_VER<=140040310)) || defined(__MINGW32__)
- # define _stprintf swprintf
- #else
- # define _stprintf _swprintf
- #endif
- #define _tprintf wprintf
- #define _vftprintf vfwprintf
- #define _vsntprintf _vsnwprintf
- #if defined(_MSC_VER) && (_MSC_VER<=1310)
- # define _vstprintf vswprintf
- #else
- # define _vstprintf _vswprintf
- #endif
- // scanfs
- #define _tscanf wscanf
- #define _stscanf swscanf
- // string manipulations
- #define _tcscat wcscat
- #define _tcschr wcschr
- #define _tcsclen wcslen
- #define _tcscpy wcscpy
- #define _tcsdup _wcsdup
- #define _tcslen wcslen
- #define _tcsnccpy wcsncpy
- #define _tcsncpy wcsncpy
- #define _tcsrchr wcsrchr
- #define _tcsstr wcsstr
- #define _tcstok wcstok
- // string comparisons
- #define _tcscmp wcscmp
- #define _tcsicmp _wcsicmp
- #define _tcsncicmp _wcsnicmp
- #define _tcsncmp wcsncmp
- #define _tcsnicmp _wcsnicmp
- // upper / lower
- #define _tcslwr _wcslwr
- #define _tcsupr _wcsupr
- #define _totlower towlower
- #define _totupper towupper
- // conversions to numbers
- #define _tcstoi64 _wcstoi64
- #define _tcstol wcstol
- #define _tcstoul wcstoul
- #define _tstof _wtof
- #define _tstoi _wtoi
- #define _tstoi64 _wtoi64
- #define _ttoi _wtoi
- #define _ttoi64 _wtoi64
- #define _ttol _wtol
- // conversion from numbers to strings
- #define _itot _itow
- #define _ltot _ltow
- #define _i64tot _i64tow
- #define _ui64tot _ui64tow
- // file manipulations
- #define _tfopen _wfopen
- #define _topen _wopen
- #define _tremove _wremove
- #define _tunlink _wunlink
- // reading and writing to i/o
- #define _fgettc fgetwc
- #define _fgetts fgetws
- #define _fputts fputws
- #define _gettchar getwchar
- // directory
- #define _tchdir _wchdir
- // environment
- #define _tgetenv _wgetenv
- #define _tsystem _wsystem
- // time
- #define _tcsftime wcsftime
- #else // ANSI
- #ifndef _T
- #define _T(x) x
- #define _TEXT(x) x
- #endif
- #ifndef _TCHAR_DEFINED
- #define _TCHAR_DEFINED
- typedef char TCHAR;
- #endif
- // program
- #define _tenviron environ
- #define __targv __argv
- // printfs
- #define _ftprintf fprintf
- #define _sntprintf _snprintf
- #define _stprintf sprintf
- #define _tprintf printf
- #define _vftprintf vfprintf
- #define _vsntprintf _vsnprintf
- #define _vstprintf vsprintf
- // scanfs
- #define _tscanf scanf
- #define _stscanf sscanf
- // string manipulations
- #define _tcscat strcat
- #define _tcschr strchr
- #define _tcsclen strlen
- #define _tcscnlen strnlen
- #define _tcscpy strcpy
- #define _tcsdup _strdup
- #define _tcslen strlen
- #define _tcsnccpy strncpy
- #define _tcsrchr strrchr
- #define _tcsstr strstr
- #define _tcstok strtok
- // string comparisons
- #define _tcscmp strcmp
- #define _tcsicmp _stricmp
- #define _tcsncmp strncmp
- #define _tcsncicmp _strnicmp
- #define _tcsnicmp _strnicmp
- // upper / lower
- #define _tcslwr _strlwr
- #define _tcsupr _strupr
- #define _totupper toupper
- #define _totlower tolower
- // conversions to numbers
- #define _tcstol strtol
- #define _tcstoul strtoul
- #define _tstof atof
- #define _tstoi atoi
- #define _tstoi64 _atoi64
- #define _tstoi64 _atoi64
- #define _ttoi atoi
- #define _ttoi64 _atoi64
- #define _ttol atol
- // conversion from numbers to strings
- #define _i64tot _i64toa
- #define _itot _itoa
- #define _ltot _ltoa
- #define _ui64tot _ui64toa
- // file manipulations
- #define _tfopen fopen
- #define _topen _open
- #define _tremove remove
- #define _tunlink _unlink
- // reading and writing to i/o
- #define _fgettc fgetc
- #define _fgetts fgets
- #define _fputts fputs
- #define _gettchar getchar
- // directory
- #define _tchdir _chdir
- // environment
- #define _tgetenv getenv
- #define _tsystem system
- // time
- #define _tcsftime strftime
- #endif
- // is functions (the same in Unicode / ANSI)
- #define _istgraph isgraph
- #define _istascii __isascii
- #define __TFILE__ _T(__FILE__)
- #define __TDATE__ _T(__DATE__)
- #define __TTIME__ _T(__TIME__)
|