comparison CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include/curl/system.h @ 69:33d812a61356

planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author jpayne
date Tue, 18 Mar 2025 17:55:14 -0400
parents
children
comparison
equal deleted inserted replaced
67:0e9998148a16 69:33d812a61356
1 #ifndef CURLINC_SYSTEM_H
2 #define CURLINC_SYSTEM_H
3 /***************************************************************************
4 * _ _ ____ _
5 * Project ___| | | | _ \| |
6 * / __| | | | |_) | |
7 * | (__| |_| | _ <| |___
8 * \___|\___/|_| \_\_____|
9 *
10 * Copyright (C) 1998 - 2022, Daniel Stenberg, <daniel@haxx.se>, et al.
11 *
12 * This software is licensed as described in the file COPYING, which
13 * you should have received as part of this distribution. The terms
14 * are also available at https://curl.se/docs/copyright.html.
15 *
16 * You may opt to use, copy, modify, merge, publish, distribute and/or sell
17 * copies of the Software, and permit persons to whom the Software is
18 * furnished to do so, under the terms of the COPYING file.
19 *
20 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
21 * KIND, either express or implied.
22 *
23 * SPDX-License-Identifier: curl
24 *
25 ***************************************************************************/
26
27 /*
28 * Try to keep one section per platform, compiler and architecture, otherwise,
29 * if an existing section is reused for a different one and later on the
30 * original is adjusted, probably the piggybacking one can be adversely
31 * changed.
32 *
33 * In order to differentiate between platforms/compilers/architectures use
34 * only compiler built in predefined preprocessor symbols.
35 *
36 * curl_off_t
37 * ----------
38 *
39 * For any given platform/compiler curl_off_t must be typedef'ed to a 64-bit
40 * wide signed integral data type. The width of this data type must remain
41 * constant and independent of any possible large file support settings.
42 *
43 * As an exception to the above, curl_off_t shall be typedef'ed to a 32-bit
44 * wide signed integral data type if there is no 64-bit type.
45 *
46 * As a general rule, curl_off_t shall not be mapped to off_t. This rule shall
47 * only be violated if off_t is the only 64-bit data type available and the
48 * size of off_t is independent of large file support settings. Keep your
49 * build on the safe side avoiding an off_t gating. If you have a 64-bit
50 * off_t then take for sure that another 64-bit data type exists, dig deeper
51 * and you will find it.
52 *
53 */
54
55 #if defined(__DJGPP__) || defined(__GO32__)
56 # if defined(__DJGPP__) && (__DJGPP__ > 1)
57 # define CURL_TYPEOF_CURL_OFF_T long long
58 # define CURL_FORMAT_CURL_OFF_T "lld"
59 # define CURL_FORMAT_CURL_OFF_TU "llu"
60 # define CURL_SUFFIX_CURL_OFF_T LL
61 # define CURL_SUFFIX_CURL_OFF_TU ULL
62 # else
63 # define CURL_TYPEOF_CURL_OFF_T long
64 # define CURL_FORMAT_CURL_OFF_T "ld"
65 # define CURL_FORMAT_CURL_OFF_TU "lu"
66 # define CURL_SUFFIX_CURL_OFF_T L
67 # define CURL_SUFFIX_CURL_OFF_TU UL
68 # endif
69 # define CURL_TYPEOF_CURL_SOCKLEN_T int
70
71 #elif defined(__SALFORDC__)
72 # define CURL_TYPEOF_CURL_OFF_T long
73 # define CURL_FORMAT_CURL_OFF_T "ld"
74 # define CURL_FORMAT_CURL_OFF_TU "lu"
75 # define CURL_SUFFIX_CURL_OFF_T L
76 # define CURL_SUFFIX_CURL_OFF_TU UL
77 # define CURL_TYPEOF_CURL_SOCKLEN_T int
78
79 #elif defined(__BORLANDC__)
80 # if (__BORLANDC__ < 0x520)
81 # define CURL_TYPEOF_CURL_OFF_T long
82 # define CURL_FORMAT_CURL_OFF_T "ld"
83 # define CURL_FORMAT_CURL_OFF_TU "lu"
84 # define CURL_SUFFIX_CURL_OFF_T L
85 # define CURL_SUFFIX_CURL_OFF_TU UL
86 # else
87 # define CURL_TYPEOF_CURL_OFF_T __int64
88 # define CURL_FORMAT_CURL_OFF_T "I64d"
89 # define CURL_FORMAT_CURL_OFF_TU "I64u"
90 # define CURL_SUFFIX_CURL_OFF_T i64
91 # define CURL_SUFFIX_CURL_OFF_TU ui64
92 # endif
93 # define CURL_TYPEOF_CURL_SOCKLEN_T int
94
95 #elif defined(__TURBOC__)
96 # define CURL_TYPEOF_CURL_OFF_T long
97 # define CURL_FORMAT_CURL_OFF_T "ld"
98 # define CURL_FORMAT_CURL_OFF_TU "lu"
99 # define CURL_SUFFIX_CURL_OFF_T L
100 # define CURL_SUFFIX_CURL_OFF_TU UL
101 # define CURL_TYPEOF_CURL_SOCKLEN_T int
102
103 #elif defined(__POCC__)
104 # if (__POCC__ < 280)
105 # define CURL_TYPEOF_CURL_OFF_T long
106 # define CURL_FORMAT_CURL_OFF_T "ld"
107 # define CURL_FORMAT_CURL_OFF_TU "lu"
108 # define CURL_SUFFIX_CURL_OFF_T L
109 # define CURL_SUFFIX_CURL_OFF_TU UL
110 # elif defined(_MSC_VER)
111 # define CURL_TYPEOF_CURL_OFF_T __int64
112 # define CURL_FORMAT_CURL_OFF_T "I64d"
113 # define CURL_FORMAT_CURL_OFF_TU "I64u"
114 # define CURL_SUFFIX_CURL_OFF_T i64
115 # define CURL_SUFFIX_CURL_OFF_TU ui64
116 # else
117 # define CURL_TYPEOF_CURL_OFF_T long long
118 # define CURL_FORMAT_CURL_OFF_T "lld"
119 # define CURL_FORMAT_CURL_OFF_TU "llu"
120 # define CURL_SUFFIX_CURL_OFF_T LL
121 # define CURL_SUFFIX_CURL_OFF_TU ULL
122 # endif
123 # define CURL_TYPEOF_CURL_SOCKLEN_T int
124
125 #elif defined(__LCC__)
126 # if defined(__MCST__) /* MCST eLbrus Compiler Collection */
127 # define CURL_TYPEOF_CURL_OFF_T long
128 # define CURL_FORMAT_CURL_OFF_T "ld"
129 # define CURL_FORMAT_CURL_OFF_TU "lu"
130 # define CURL_SUFFIX_CURL_OFF_T L
131 # define CURL_SUFFIX_CURL_OFF_TU UL
132 # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
133 # define CURL_PULL_SYS_TYPES_H 1
134 # define CURL_PULL_SYS_SOCKET_H 1
135 # else /* Local (or Little) C Compiler */
136 # define CURL_TYPEOF_CURL_OFF_T long
137 # define CURL_FORMAT_CURL_OFF_T "ld"
138 # define CURL_FORMAT_CURL_OFF_TU "lu"
139 # define CURL_SUFFIX_CURL_OFF_T L
140 # define CURL_SUFFIX_CURL_OFF_TU UL
141 # define CURL_TYPEOF_CURL_SOCKLEN_T int
142 # endif
143
144 #elif defined(__SYMBIAN32__)
145 # if defined(__EABI__) /* Treat all ARM compilers equally */
146 # define CURL_TYPEOF_CURL_OFF_T long long
147 # define CURL_FORMAT_CURL_OFF_T "lld"
148 # define CURL_FORMAT_CURL_OFF_TU "llu"
149 # define CURL_SUFFIX_CURL_OFF_T LL
150 # define CURL_SUFFIX_CURL_OFF_TU ULL
151 # elif defined(__CW32__)
152 # pragma longlong on
153 # define CURL_TYPEOF_CURL_OFF_T long long
154 # define CURL_FORMAT_CURL_OFF_T "lld"
155 # define CURL_FORMAT_CURL_OFF_TU "llu"
156 # define CURL_SUFFIX_CURL_OFF_T LL
157 # define CURL_SUFFIX_CURL_OFF_TU ULL
158 # elif defined(__VC32__)
159 # define CURL_TYPEOF_CURL_OFF_T __int64
160 # define CURL_FORMAT_CURL_OFF_T "lld"
161 # define CURL_FORMAT_CURL_OFF_TU "llu"
162 # define CURL_SUFFIX_CURL_OFF_T LL
163 # define CURL_SUFFIX_CURL_OFF_TU ULL
164 # endif
165 # define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int
166
167 #elif defined(macintosh)
168 # include <ConditionalMacros.h>
169 # if TYPE_LONGLONG
170 # define CURL_TYPEOF_CURL_OFF_T long long
171 # define CURL_FORMAT_CURL_OFF_T "lld"
172 # define CURL_FORMAT_CURL_OFF_TU "llu"
173 # define CURL_SUFFIX_CURL_OFF_T LL
174 # define CURL_SUFFIX_CURL_OFF_TU ULL
175 # else
176 # define CURL_TYPEOF_CURL_OFF_T long
177 # define CURL_FORMAT_CURL_OFF_T "ld"
178 # define CURL_FORMAT_CURL_OFF_TU "lu"
179 # define CURL_SUFFIX_CURL_OFF_T L
180 # define CURL_SUFFIX_CURL_OFF_TU UL
181 # endif
182 # define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int
183
184 #elif defined(__TANDEM)
185 # if ! defined(__LP64)
186 /* Required for 32-bit NonStop builds only. */
187 # define CURL_TYPEOF_CURL_OFF_T long long
188 # define CURL_FORMAT_CURL_OFF_T "lld"
189 # define CURL_FORMAT_CURL_OFF_TU "llu"
190 # define CURL_SUFFIX_CURL_OFF_T LL
191 # define CURL_SUFFIX_CURL_OFF_TU ULL
192 # define CURL_TYPEOF_CURL_SOCKLEN_T int
193 # endif
194
195 #elif defined(_WIN32_WCE)
196 # define CURL_TYPEOF_CURL_OFF_T __int64
197 # define CURL_FORMAT_CURL_OFF_T "I64d"
198 # define CURL_FORMAT_CURL_OFF_TU "I64u"
199 # define CURL_SUFFIX_CURL_OFF_T i64
200 # define CURL_SUFFIX_CURL_OFF_TU ui64
201 # define CURL_TYPEOF_CURL_SOCKLEN_T int
202
203 #elif defined(__MINGW32__)
204 # define CURL_TYPEOF_CURL_OFF_T long long
205 # define CURL_FORMAT_CURL_OFF_T "I64d"
206 # define CURL_FORMAT_CURL_OFF_TU "I64u"
207 # define CURL_SUFFIX_CURL_OFF_T LL
208 # define CURL_SUFFIX_CURL_OFF_TU ULL
209 # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
210 # define CURL_PULL_SYS_TYPES_H 1
211 # define CURL_PULL_WS2TCPIP_H 1
212
213 #elif defined(__VMS)
214 # if defined(__VAX)
215 # define CURL_TYPEOF_CURL_OFF_T long
216 # define CURL_FORMAT_CURL_OFF_T "ld"
217 # define CURL_FORMAT_CURL_OFF_TU "lu"
218 # define CURL_SUFFIX_CURL_OFF_T L
219 # define CURL_SUFFIX_CURL_OFF_TU UL
220 # else
221 # define CURL_TYPEOF_CURL_OFF_T long long
222 # define CURL_FORMAT_CURL_OFF_T "lld"
223 # define CURL_FORMAT_CURL_OFF_TU "llu"
224 # define CURL_SUFFIX_CURL_OFF_T LL
225 # define CURL_SUFFIX_CURL_OFF_TU ULL
226 # endif
227 # define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int
228
229 #elif defined(__OS400__)
230 # if defined(__ILEC400__)
231 # define CURL_TYPEOF_CURL_OFF_T long long
232 # define CURL_FORMAT_CURL_OFF_T "lld"
233 # define CURL_FORMAT_CURL_OFF_TU "llu"
234 # define CURL_SUFFIX_CURL_OFF_T LL
235 # define CURL_SUFFIX_CURL_OFF_TU ULL
236 # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
237 # define CURL_PULL_SYS_TYPES_H 1
238 # define CURL_PULL_SYS_SOCKET_H 1
239 # endif
240
241 #elif defined(__MVS__)
242 # if defined(__IBMC__) || defined(__IBMCPP__)
243 # if defined(_ILP32)
244 # elif defined(_LP64)
245 # endif
246 # if defined(_LONG_LONG)
247 # define CURL_TYPEOF_CURL_OFF_T long long
248 # define CURL_FORMAT_CURL_OFF_T "lld"
249 # define CURL_FORMAT_CURL_OFF_TU "llu"
250 # define CURL_SUFFIX_CURL_OFF_T LL
251 # define CURL_SUFFIX_CURL_OFF_TU ULL
252 # elif defined(_LP64)
253 # define CURL_TYPEOF_CURL_OFF_T long
254 # define CURL_FORMAT_CURL_OFF_T "ld"
255 # define CURL_FORMAT_CURL_OFF_TU "lu"
256 # define CURL_SUFFIX_CURL_OFF_T L
257 # define CURL_SUFFIX_CURL_OFF_TU UL
258 # else
259 # define CURL_TYPEOF_CURL_OFF_T long
260 # define CURL_FORMAT_CURL_OFF_T "ld"
261 # define CURL_FORMAT_CURL_OFF_TU "lu"
262 # define CURL_SUFFIX_CURL_OFF_T L
263 # define CURL_SUFFIX_CURL_OFF_TU UL
264 # endif
265 # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
266 # define CURL_PULL_SYS_TYPES_H 1
267 # define CURL_PULL_SYS_SOCKET_H 1
268 # endif
269
270 #elif defined(__370__)
271 # if defined(__IBMC__) || defined(__IBMCPP__)
272 # if defined(_ILP32)
273 # elif defined(_LP64)
274 # endif
275 # if defined(_LONG_LONG)
276 # define CURL_TYPEOF_CURL_OFF_T long long
277 # define CURL_FORMAT_CURL_OFF_T "lld"
278 # define CURL_FORMAT_CURL_OFF_TU "llu"
279 # define CURL_SUFFIX_CURL_OFF_T LL
280 # define CURL_SUFFIX_CURL_OFF_TU ULL
281 # elif defined(_LP64)
282 # define CURL_TYPEOF_CURL_OFF_T long
283 # define CURL_FORMAT_CURL_OFF_T "ld"
284 # define CURL_FORMAT_CURL_OFF_TU "lu"
285 # define CURL_SUFFIX_CURL_OFF_T L
286 # define CURL_SUFFIX_CURL_OFF_TU UL
287 # else
288 # define CURL_TYPEOF_CURL_OFF_T long
289 # define CURL_FORMAT_CURL_OFF_T "ld"
290 # define CURL_FORMAT_CURL_OFF_TU "lu"
291 # define CURL_SUFFIX_CURL_OFF_T L
292 # define CURL_SUFFIX_CURL_OFF_TU UL
293 # endif
294 # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
295 # define CURL_PULL_SYS_TYPES_H 1
296 # define CURL_PULL_SYS_SOCKET_H 1
297 # endif
298
299 #elif defined(TPF)
300 # define CURL_TYPEOF_CURL_OFF_T long
301 # define CURL_FORMAT_CURL_OFF_T "ld"
302 # define CURL_FORMAT_CURL_OFF_TU "lu"
303 # define CURL_SUFFIX_CURL_OFF_T L
304 # define CURL_SUFFIX_CURL_OFF_TU UL
305 # define CURL_TYPEOF_CURL_SOCKLEN_T int
306
307 #elif defined(__TINYC__) /* also known as tcc */
308 # define CURL_TYPEOF_CURL_OFF_T long long
309 # define CURL_FORMAT_CURL_OFF_T "lld"
310 # define CURL_FORMAT_CURL_OFF_TU "llu"
311 # define CURL_SUFFIX_CURL_OFF_T LL
312 # define CURL_SUFFIX_CURL_OFF_TU ULL
313 # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
314 # define CURL_PULL_SYS_TYPES_H 1
315 # define CURL_PULL_SYS_SOCKET_H 1
316
317 #elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) /* Oracle Solaris Studio */
318 # if !defined(__LP64) && (defined(__ILP32) || \
319 defined(__i386) || \
320 defined(__sparcv8) || \
321 defined(__sparcv8plus))
322 # define CURL_TYPEOF_CURL_OFF_T long long
323 # define CURL_FORMAT_CURL_OFF_T "lld"
324 # define CURL_FORMAT_CURL_OFF_TU "llu"
325 # define CURL_SUFFIX_CURL_OFF_T LL
326 # define CURL_SUFFIX_CURL_OFF_TU ULL
327 # elif defined(__LP64) || \
328 defined(__amd64) || defined(__sparcv9)
329 # define CURL_TYPEOF_CURL_OFF_T long
330 # define CURL_FORMAT_CURL_OFF_T "ld"
331 # define CURL_FORMAT_CURL_OFF_TU "lu"
332 # define CURL_SUFFIX_CURL_OFF_T L
333 # define CURL_SUFFIX_CURL_OFF_TU UL
334 # endif
335 # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
336 # define CURL_PULL_SYS_TYPES_H 1
337 # define CURL_PULL_SYS_SOCKET_H 1
338
339 #elif defined(__xlc__) /* IBM xlc compiler */
340 # if !defined(_LP64)
341 # define CURL_TYPEOF_CURL_OFF_T long long
342 # define CURL_FORMAT_CURL_OFF_T "lld"
343 # define CURL_FORMAT_CURL_OFF_TU "llu"
344 # define CURL_SUFFIX_CURL_OFF_T LL
345 # define CURL_SUFFIX_CURL_OFF_TU ULL
346 # else
347 # define CURL_TYPEOF_CURL_OFF_T long
348 # define CURL_FORMAT_CURL_OFF_T "ld"
349 # define CURL_FORMAT_CURL_OFF_TU "lu"
350 # define CURL_SUFFIX_CURL_OFF_T L
351 # define CURL_SUFFIX_CURL_OFF_TU UL
352 # endif
353 # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
354 # define CURL_PULL_SYS_TYPES_H 1
355 # define CURL_PULL_SYS_SOCKET_H 1
356
357 /* ===================================== */
358 /* KEEP MSVC THE PENULTIMATE ENTRY */
359 /* ===================================== */
360
361 #elif defined(_MSC_VER)
362 # if (_MSC_VER >= 900) && (_INTEGRAL_MAX_BITS >= 64)
363 # define CURL_TYPEOF_CURL_OFF_T __int64
364 # define CURL_FORMAT_CURL_OFF_T "I64d"
365 # define CURL_FORMAT_CURL_OFF_TU "I64u"
366 # define CURL_SUFFIX_CURL_OFF_T i64
367 # define CURL_SUFFIX_CURL_OFF_TU ui64
368 # else
369 # define CURL_TYPEOF_CURL_OFF_T long
370 # define CURL_FORMAT_CURL_OFF_T "ld"
371 # define CURL_FORMAT_CURL_OFF_TU "lu"
372 # define CURL_SUFFIX_CURL_OFF_T L
373 # define CURL_SUFFIX_CURL_OFF_TU UL
374 # endif
375 # define CURL_TYPEOF_CURL_SOCKLEN_T int
376
377 /* ===================================== */
378 /* KEEP GENERIC GCC THE LAST ENTRY */
379 /* ===================================== */
380
381 #elif defined(__GNUC__) && !defined(_SCO_DS)
382 # if !defined(__LP64__) && \
383 (defined(__ILP32__) || defined(__i386__) || defined(__hppa__) || \
384 defined(__ppc__) || defined(__powerpc__) || defined(__arm__) || \
385 defined(__sparc__) || defined(__mips__) || defined(__sh__) || \
386 defined(__XTENSA__) || \
387 (defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 4) || \
388 (defined(__LONG_MAX__) && __LONG_MAX__ == 2147483647L))
389 # define CURL_TYPEOF_CURL_OFF_T long long
390 # define CURL_FORMAT_CURL_OFF_T "lld"
391 # define CURL_FORMAT_CURL_OFF_TU "llu"
392 # define CURL_SUFFIX_CURL_OFF_T LL
393 # define CURL_SUFFIX_CURL_OFF_TU ULL
394 # elif defined(__LP64__) || \
395 defined(__x86_64__) || defined(__ppc64__) || defined(__sparc64__) || \
396 defined(__e2k__) || \
397 (defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 8) || \
398 (defined(__LONG_MAX__) && __LONG_MAX__ == 9223372036854775807L)
399 # define CURL_TYPEOF_CURL_OFF_T long
400 # define CURL_FORMAT_CURL_OFF_T "ld"
401 # define CURL_FORMAT_CURL_OFF_TU "lu"
402 # define CURL_SUFFIX_CURL_OFF_T L
403 # define CURL_SUFFIX_CURL_OFF_TU UL
404 # endif
405 # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
406 # define CURL_PULL_SYS_TYPES_H 1
407 # define CURL_PULL_SYS_SOCKET_H 1
408
409 #else
410 /* generic "safe guess" on old 32 bit style */
411 # define CURL_TYPEOF_CURL_OFF_T long
412 # define CURL_FORMAT_CURL_OFF_T "ld"
413 # define CURL_FORMAT_CURL_OFF_TU "lu"
414 # define CURL_SUFFIX_CURL_OFF_T L
415 # define CURL_SUFFIX_CURL_OFF_TU UL
416 # define CURL_TYPEOF_CURL_SOCKLEN_T int
417 #endif
418
419 #ifdef _AIX
420 /* AIX needs <sys/poll.h> */
421 #define CURL_PULL_SYS_POLL_H
422 #endif
423
424
425 /* CURL_PULL_WS2TCPIP_H is defined above when inclusion of header file */
426 /* ws2tcpip.h is required here to properly make type definitions below. */
427 #ifdef CURL_PULL_WS2TCPIP_H
428 # include <winsock2.h>
429 # include <windows.h>
430 # include <ws2tcpip.h>
431 #endif
432
433 /* CURL_PULL_SYS_TYPES_H is defined above when inclusion of header file */
434 /* sys/types.h is required here to properly make type definitions below. */
435 #ifdef CURL_PULL_SYS_TYPES_H
436 # include <sys/types.h>
437 #endif
438
439 /* CURL_PULL_SYS_SOCKET_H is defined above when inclusion of header file */
440 /* sys/socket.h is required here to properly make type definitions below. */
441 #ifdef CURL_PULL_SYS_SOCKET_H
442 # include <sys/socket.h>
443 #endif
444
445 /* CURL_PULL_SYS_POLL_H is defined above when inclusion of header file */
446 /* sys/poll.h is required here to properly make type definitions below. */
447 #ifdef CURL_PULL_SYS_POLL_H
448 # include <sys/poll.h>
449 #endif
450
451 /* Data type definition of curl_socklen_t. */
452 #ifdef CURL_TYPEOF_CURL_SOCKLEN_T
453 typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t;
454 #endif
455
456 /* Data type definition of curl_off_t. */
457
458 #ifdef CURL_TYPEOF_CURL_OFF_T
459 typedef CURL_TYPEOF_CURL_OFF_T curl_off_t;
460 #endif
461
462 /*
463 * CURL_ISOCPP and CURL_OFF_T_C definitions are done here in order to allow
464 * these to be visible and exported by the external libcurl interface API,
465 * while also making them visible to the library internals, simply including
466 * curl_setup.h, without actually needing to include curl.h internally.
467 * If some day this section would grow big enough, all this should be moved
468 * to its own header file.
469 */
470
471 /*
472 * Figure out if we can use the ## preprocessor operator, which is supported
473 * by ISO/ANSI C and C++. Some compilers support it without setting __STDC__
474 * or __cplusplus so we need to carefully check for them too.
475 */
476
477 #if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) || \
478 defined(__HP_aCC) || defined(__BORLANDC__) || defined(__LCC__) || \
479 defined(__POCC__) || defined(__SALFORDC__) || defined(__HIGHC__) || \
480 defined(__ILEC400__)
481 /* This compiler is believed to have an ISO compatible preprocessor */
482 #define CURL_ISOCPP
483 #else
484 /* This compiler is believed NOT to have an ISO compatible preprocessor */
485 #undef CURL_ISOCPP
486 #endif
487
488 /*
489 * Macros for minimum-width signed and unsigned curl_off_t integer constants.
490 */
491
492 #if defined(__BORLANDC__) && (__BORLANDC__ == 0x0551)
493 # define CURLINC_OFF_T_C_HLPR2(x) x
494 # define CURLINC_OFF_T_C_HLPR1(x) CURLINC_OFF_T_C_HLPR2(x)
495 # define CURL_OFF_T_C(Val) CURLINC_OFF_T_C_HLPR1(Val) ## \
496 CURLINC_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_T)
497 # define CURL_OFF_TU_C(Val) CURLINC_OFF_T_C_HLPR1(Val) ## \
498 CURLINC_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_TU)
499 #else
500 # ifdef CURL_ISOCPP
501 # define CURLINC_OFF_T_C_HLPR2(Val,Suffix) Val ## Suffix
502 # else
503 # define CURLINC_OFF_T_C_HLPR2(Val,Suffix) Val/**/Suffix
504 # endif
505 # define CURLINC_OFF_T_C_HLPR1(Val,Suffix) CURLINC_OFF_T_C_HLPR2(Val,Suffix)
506 # define CURL_OFF_T_C(Val) CURLINC_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_T)
507 # define CURL_OFF_TU_C(Val) CURLINC_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_TU)
508 #endif
509
510 #endif /* CURLINC_SYSTEM_H */