/* * tchar.h * * This file is a part of NSIS. * * Copyright (C) 1999-2007 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 typedef wchar_t TCHAR; typedef wchar_t _TUCHAR; // program #define _tmain wmain #define _tWinMain wWinMain #define _tenviron _wenviron #define __targv __wargv // printfs #define _ftprintf fwprintf #define _sntprintf _snwprintf #define _stprintf _swprintf #define _tprintf wprintf #define _vftprintf vfwprintf #define _vsntprintf _vsnwprintf #define _vstprintf _vswprintf // 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 typedef char TCHAR; typedef unsigned char _TUCHAR; // program #define _tmain main #define _tWinMain WinMain #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