Tue, 06 Jan 2015 21:39:09 +0100
Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.
1 /*
2 * tchar.h
3 *
4 * This file is a part of NSIS.
5 *
6 * Copyright (C) 1999-2007 Nullsoft and Contributors
7 *
8 * This software is provided 'as-is', without any express or implied
9 * warranty.
10 *
11 * For Unicode support by Jim Park -- 08/30/2007
12 */
14 // Jim Park: Only those we use are listed here.
16 #pragma once
18 #ifdef _UNICODE
20 #ifndef _T
21 #define __T(x) L ## x
22 #define _T(x) __T(x)
23 #define _TEXT(x) __T(x)
24 #endif
25 typedef wchar_t TCHAR;
26 typedef wchar_t _TUCHAR;
28 // program
29 #define _tmain wmain
30 #define _tWinMain wWinMain
31 #define _tenviron _wenviron
32 #define __targv __wargv
34 // printfs
35 #define _ftprintf fwprintf
36 #define _sntprintf _snwprintf
37 #define _stprintf _swprintf
38 #define _tprintf wprintf
39 #define _vftprintf vfwprintf
40 #define _vsntprintf _vsnwprintf
41 #define _vstprintf _vswprintf
43 // scanfs
44 #define _tscanf wscanf
45 #define _stscanf swscanf
47 // string manipulations
48 #define _tcscat wcscat
49 #define _tcschr wcschr
50 #define _tcsclen wcslen
51 #define _tcscpy wcscpy
52 #define _tcsdup _wcsdup
53 #define _tcslen wcslen
54 #define _tcsnccpy wcsncpy
55 #define _tcsncpy wcsncpy
56 #define _tcsrchr wcsrchr
57 #define _tcsstr wcsstr
58 #define _tcstok wcstok
60 // string comparisons
61 #define _tcscmp wcscmp
62 #define _tcsicmp _wcsicmp
63 #define _tcsncicmp _wcsnicmp
64 #define _tcsncmp wcsncmp
65 #define _tcsnicmp _wcsnicmp
67 // upper / lower
68 #define _tcslwr _wcslwr
69 #define _tcsupr _wcsupr
70 #define _totlower towlower
71 #define _totupper towupper
73 // conversions to numbers
74 #define _tcstoi64 _wcstoi64
75 #define _tcstol wcstol
76 #define _tcstoul wcstoul
77 #define _tstof _wtof
78 #define _tstoi _wtoi
79 #define _tstoi64 _wtoi64
80 #define _ttoi _wtoi
81 #define _ttoi64 _wtoi64
82 #define _ttol _wtol
84 // conversion from numbers to strings
85 #define _itot _itow
86 #define _ltot _ltow
87 #define _i64tot _i64tow
88 #define _ui64tot _ui64tow
90 // file manipulations
91 #define _tfopen _wfopen
92 #define _topen _wopen
93 #define _tremove _wremove
94 #define _tunlink _wunlink
96 // reading and writing to i/o
97 #define _fgettc fgetwc
98 #define _fgetts fgetws
99 #define _fputts fputws
100 #define _gettchar getwchar
102 // directory
103 #define _tchdir _wchdir
105 // environment
106 #define _tgetenv _wgetenv
107 #define _tsystem _wsystem
109 // time
110 #define _tcsftime wcsftime
112 #else // ANSI
114 #ifndef _T
115 #define _T(x) x
116 #define _TEXT(x) x
117 #endif
118 typedef char TCHAR;
119 typedef unsigned char _TUCHAR;
121 // program
122 #define _tmain main
123 #define _tWinMain WinMain
124 #define _tenviron environ
125 #define __targv __argv
127 // printfs
128 #define _ftprintf fprintf
129 #define _sntprintf _snprintf
130 #define _stprintf sprintf
131 #define _tprintf printf
132 #define _vftprintf vfprintf
133 #define _vsntprintf _vsnprintf
134 #define _vstprintf vsprintf
136 // scanfs
137 #define _tscanf scanf
138 #define _stscanf sscanf
140 // string manipulations
141 #define _tcscat strcat
142 #define _tcschr strchr
143 #define _tcsclen strlen
144 #define _tcscnlen strnlen
145 #define _tcscpy strcpy
146 #define _tcsdup _strdup
147 #define _tcslen strlen
148 #define _tcsnccpy strncpy
149 #define _tcsrchr strrchr
150 #define _tcsstr strstr
151 #define _tcstok strtok
153 // string comparisons
154 #define _tcscmp strcmp
155 #define _tcsicmp _stricmp
156 #define _tcsncmp strncmp
157 #define _tcsncicmp _strnicmp
158 #define _tcsnicmp _strnicmp
160 // upper / lower
161 #define _tcslwr _strlwr
162 #define _tcsupr _strupr
164 #define _totupper toupper
165 #define _totlower tolower
167 // conversions to numbers
168 #define _tcstol strtol
169 #define _tcstoul strtoul
170 #define _tstof atof
171 #define _tstoi atoi
172 #define _tstoi64 _atoi64
173 #define _tstoi64 _atoi64
174 #define _ttoi atoi
175 #define _ttoi64 _atoi64
176 #define _ttol atol
178 // conversion from numbers to strings
179 #define _i64tot _i64toa
180 #define _itot _itoa
181 #define _ltot _ltoa
182 #define _ui64tot _ui64toa
184 // file manipulations
185 #define _tfopen fopen
186 #define _topen _open
187 #define _tremove remove
188 #define _tunlink _unlink
190 // reading and writing to i/o
191 #define _fgettc fgetc
192 #define _fgetts fgets
193 #define _fputts fputs
194 #define _gettchar getchar
196 // directory
197 #define _tchdir _chdir
199 // environment
200 #define _tgetenv getenv
201 #define _tsystem system
203 // time
204 #define _tcsftime strftime
206 #endif
208 // is functions (the same in Unicode / ANSI)
209 #define _istgraph isgraph
210 #define _istascii __isascii