aboutsummaryrefslogtreecommitdiff
path: root/sp/src/public/tier0/protected_things.h
blob: 8cbfa929c74b2e73a8e5c543382849c10a211b34 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: 
//
// $NoKeywords: $
//=============================================================================//

#ifndef PROTECTED_THINGS_H
#define PROTECTED_THINGS_H
#ifdef _WIN32
#pragma once
#endif


// This header tries to prevent people from using potentially dangerous functions
// (like the notorious non-null-terminating strncpy) and functions that will break
// VCR mode (like time, input, registry, etc).
//
// This header should be included by ALL of our source code.

// Eventually, ALL of these should be protected, but one man can only accomplish so much in
// one day AND work on features too!
#if defined( PROTECTED_STRINGS_ENABLE ) && !defined(DISABLE_PROTECTED_STRINGS)

	#if defined( printf )
		#undef printf
	#endif
	#define printf				printf__HEY_YOU__USE_VSTDLIB
	
	#if defined( wprintf )
		#undef wprintf
	#endif
	#define wprintf				wprintf__HEY_YOU__USE_VSTDLIB
	
	#if defined( strcmp )
		#undef strcmp
	#endif
	#define strcmp				strcmp__HEY_YOU__USE_VSTDLIB
	
	#if defined( wcscmp )
		#undef wcscmp
	#endif
	#define wcscmp				wcscmp__HEY_YOU__USE_VSTDLIB
	
	#if defined( strncpy )
		#undef strncpy
	#endif
	#define strncpy				strncpy__HEY_YOU__USE_VSTDLIB
	
	#if defined( wcsncpy )
		#undef wcsncpy
	#endif
	#define wcsncpy				wcsncpy__HEY_YOU__USE_VSTDLIB
	
	#if defined( strlen )
		#undef strlen
	#endif
	#define strlen				strlen__HEY_YOU__USE_VSTDLIB
	
	#if defined( wcslen )
		#undef wcslen
	#endif
	#define wcslen				wcslen__HEY_YOU__USE_VSTDLIB
	
	#if defined( Q_strlen )
		#undef Q_strlen
	#endif
	#define Q_strlen			Q_strlen__HEY_YOU__USE_VSTDLIB
	
	#if defined( _snprintf )
		#undef _snprintf
	#endif
	#define _snprintf			snprintf__HEY_YOU__USE_VSTDLIB
	
	#if defined( _snwprintf )
		#undef _snwprintf
	#endif
	#define _snwprintf			snwprintf__HEY_YOU__USE_VSTDLIB
	
	#if defined( sprintf )
		#undef sprintf
	#endif
	#define sprintf				sprintf__HEY_YOU__USE_VSTDLIB

	#if defined( swprintf )
		#undef swprintf
	#endif
	#define swprintf			swprintf__HEY_YOU__USE_VSTDLIB

	#if defined( vsprintf )
		#undef vsprintf
	#endif
	#define vsprintf			vsprintf__HEY_YOU__USE_VSTDLIB

	#if defined( vswprintf )
		#undef vswprintf
	#endif
	#define vswprintf			vswprintf__HEY_YOU__USE_VSTDLIB

	#if defined( _vsnprintf )
		#undef _vsnprintf
	#endif
	#define _vsnprintf			vsnprintf__HEY_YOU__USE_VSTDLIB
	
	#if defined( _vsnwprintf )
		#undef _vsnwprintf
	#endif
	#define _vsnwprintf			vsnwprintf__HEY_YOU__USE_VSTDLIB
	
	#if defined( strcat )
		#undef strcat
	#endif
	#define strcat				strcat__HEY_YOU__USE_VSTDLIB

	#if defined( wcscat )
		#undef wcscat
	#endif
	#define wcscat				wcscat__HEY_YOU__USE_VSTDLIB

	#if defined( strncat )
		#undef strncat
	#endif
	#define strncat				strncat__HEY_YOU__USE_VSTDLIB

	#if defined( wcsncat )
		#undef wcsncat
	#endif
	#define wcsncat				wcsncat__HEY_YOU__USE_VSTDLIB

#endif


#if defined( PROTECTED_THINGS_ENABLE ) && !defined( _X360 ) && !defined(DISABLE_PROTECTED_THINGS)

	#if defined( GetTickCount )
		#undef GetTickCount
	#endif
	#define GetTickCount		GetTickCount__USE_VCR_MODE
	
	
	#if defined( timeGetTime )
		#undef timeGetTime
	#endif
	#define timeGetTime			timeGetTime__USE_VCR_MODE
	#if defined( clock )
		#undef clock
	#endif
	#define time				time__USE_VCR_MODE
	
	
	#if defined( recvfrom )
		#undef recvfrom
	#endif
	#define recvfrom			recvfrom__USE_VCR_MODE


	#if defined( GetCursorPos )
		#undef GetCursorPos
	#endif
	#define GetCursorPos		GetCursorPos__USE_VCR_MODE
	
	
	#if defined( ScreenToClient )
		#undef ScreenToClient
	#endif
	#define ScreenToClient		ScreenToClient__USE_VCR_MODE
	
	
	#if defined( GetCommandLine )
		#undef GetCommandLine
	#endif
	#define GetCommandLine		GetCommandLine__USE_VCR_MODE
	
	
	#if defined( RegOpenKeyEx )
		#undef RegOpenKeyEx
	#endif
	#define RegOpenKeyEx		RegOpenKeyEx__USE_VCR_MODE
	
	
	#if defined( RegOpenKey )
		#undef RegOpenKey
	#endif
	#define RegOpenKey			RegOpenKey__USE_VCR_MODE
	
	
	#if defined( RegSetValueEx )
		#undef RegSetValueEx
	#endif
	#define RegSetValueEx		RegSetValueEx__USE_VCR_MODE
	
	
	#if defined( RegSetValue )
		#undef RegSetValue
	#endif
	#define RegSetValue			RegSetValue__USE_VCR_MODE
	
	
	#if defined( RegQueryValueEx )
		#undef RegQueryValueEx
	#endif		
	#define RegQueryValueEx		RegQueryValueEx__USE_VCR_MODE
	
	
	#if defined( RegQueryValue )
		#undef RegQueryValue
	#endif		
	#define RegQueryValue		RegQueryValue__USE_VCR_MODE
	
	
	#if defined( RegCreateKeyEx )
		#undef RegCreateKeyEx
	#endif
	#define RegCreateKeyEx		RegCreateKeyEx__USE_VCR_MODE
	
	
	#if defined( RegCreateKey )
		#undef RegCreateKey
	#endif
	#define RegCreateKey		RegCreateKey__USE_VCR_MODE
	
	
	#if defined( RegCloseKey )
		#undef RegCloseKey
	#endif
	#define RegCloseKey			RegCloseKey__USE_VCR_MODE
	
	
	#if defined( GetNumberOfConsoleInputEvents )
		#undef GetNumberOfConsoleInputEvents
	#endif
	#define GetNumberOfConsoleInputEvents	GetNumberOfConsoleInputEvents__USE_VCR_MODE
	
	
	#if defined( ReadConsoleInput )
		#undef ReadConsoleInput
	#endif
	#define ReadConsoleInput	ReadConsoleInput__USE_VCR_MODE


	#if defined( GetAsyncKeyState )
		#undef GetAsyncKeyState
	#endif
	#define GetAsyncKeyState	GetAsyncKeyState__USE_VCR_MODE

	
	#if defined( GetKeyState )
		#undef GetKeyState
	#endif
	#define GetKeyState			GetKeyState__USE_VCR_MODE


	#if defined( CreateThread )
		#undef CreateThread
	#endif
	#define CreateThread		CreateThread__USE_VCR_MODE

	#if defined( WaitForSingleObject )
		#undef WaitForSingleObject
	#endif
	#define WaitForSingleObject	WaitForSingleObject__USE_VCR_MODE

	#if defined( EnterCriticalSection )
		#undef EnterCriticalSection
	#endif
	#define EnterCriticalSection EnterCriticalSection__USE_VCR_MODE

#endif


#endif // PROTECTED_THINGS_H