Commit | Line | Data |
---|---|---|
c0c3707f | 1 | /* Copyright (C) 2006-2019 Free Software Foundation, Inc. |
55a8c076 YQ |
2 | Written by Paul Eggert, Bruno Haible, Derek Price. |
3 | This file is part of gnulib. | |
4 | ||
5 | This program is free software: you can redistribute it and/or modify | |
6 | it under the terms of the GNU General Public License as published by | |
7 | the Free Software Foundation; either version 3 of the License, or | |
8 | (at your option) any later version. | |
9 | ||
10 | This program is distributed in the hope that it will be useful, | |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | GNU General Public License for more details. | |
14 | ||
15 | You should have received a copy of the GNU General Public License | |
c0c3707f | 16 | along with this program. If not, see <https://www.gnu.org/licenses/>. */ |
55a8c076 YQ |
17 | |
18 | /* | |
19 | * ISO C 99 <inttypes.h> for platforms that lack it. | |
c0c3707f | 20 | * <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/inttypes.h.html> |
55a8c076 YQ |
21 | */ |
22 | ||
23 | #if __GNUC__ >= 3 | |
24 | @PRAGMA_SYSTEM_HEADER@ | |
25 | #endif | |
770d76d7 | 26 | @PRAGMA_COLUMNS@ |
55a8c076 YQ |
27 | |
28 | /* Include the original <inttypes.h> if it exists, and if this file | |
29 | has not been included yet or if this file includes gnulib stdint.h | |
30 | which in turn includes this file. | |
31 | The include_next requires a split double-inclusion guard. */ | |
32 | #if ! defined INTTYPES_H || defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H | |
33 | # if @HAVE_INTTYPES_H@ | |
770d76d7 PA |
34 | |
35 | /* Some pre-C++11 <stdint.h> implementations need this. */ | |
36 | # if defined __cplusplus && ! defined __STDC_FORMAT_MACROS | |
37 | # define __STDC_FORMAT_MACROS 1 | |
38 | # endif | |
39 | ||
55a8c076 YQ |
40 | # @INCLUDE_NEXT@ @NEXT_INTTYPES_H@ |
41 | # endif | |
42 | #endif | |
43 | ||
44 | #if ! defined INTTYPES_H && ! defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H | |
45 | #define INTTYPES_H | |
46 | ||
47 | /* Include <stdint.h> or the gnulib replacement. | |
48 | But avoid namespace pollution on glibc systems. */ | |
49 | #ifndef __GLIBC__ | |
50 | # include <stdint.h> | |
51 | #endif | |
c0c3707f | 52 | /* Get CHAR_BIT, INT_MAX, LONG_MAX, etc. */ |
55a8c076 | 53 | #include <limits.h> |
4a626d0a | 54 | /* On mingw, __USE_MINGW_ANSI_STDIO only works if <stdio.h> is also included */ |
c0c3707f | 55 | #if defined _WIN32 && ! defined __CYGWIN__ |
4a626d0a PA |
56 | # include <stdio.h> |
57 | #endif | |
55a8c076 | 58 | |
c0c3707f CB |
59 | #if !(INT_MAX == 0x7fffffff && INT_MIN + INT_MAX == -1) |
60 | # error "This file assumes that 'int' is 32-bit two's complement. Please report your platform and compiler to <bug-gnulib@gnu.org>." | |
55a8c076 YQ |
61 | #endif |
62 | ||
770d76d7 PA |
63 | /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ |
64 | ||
55a8c076 YQ |
65 | /* The definition of _GL_ARG_NONNULL is copied here. */ |
66 | ||
67 | /* The definition of _GL_WARN_ON_USE is copied here. */ | |
68 | ||
69 | /* 7.8.1 Macros for format specifiers */ | |
70 | ||
770d76d7 | 71 | #if defined _TNS_R_TARGET |
55a8c076 YQ |
72 | /* Tandem NonStop R series and compatible platforms released before |
73 | July 2005 support %Ld but not %lld. */ | |
770d76d7 PA |
74 | # define _LONG_LONG_FORMAT_PREFIX "L" |
75 | #else | |
76 | # define _LONG_LONG_FORMAT_PREFIX "ll" | |
77 | #endif | |
55a8c076 | 78 | |
770d76d7 PA |
79 | #if !defined PRId8 || @PRI_MACROS_BROKEN@ |
80 | # undef PRId8 | |
81 | # ifdef INT8_MAX | |
82 | # define PRId8 "d" | |
55a8c076 | 83 | # endif |
770d76d7 PA |
84 | #endif |
85 | #if !defined PRIi8 || @PRI_MACROS_BROKEN@ | |
86 | # undef PRIi8 | |
87 | # ifdef INT8_MAX | |
88 | # define PRIi8 "i" | |
55a8c076 | 89 | # endif |
770d76d7 PA |
90 | #endif |
91 | #if !defined PRIo8 || @PRI_MACROS_BROKEN@ | |
92 | # undef PRIo8 | |
93 | # ifdef UINT8_MAX | |
94 | # define PRIo8 "o" | |
55a8c076 | 95 | # endif |
770d76d7 PA |
96 | #endif |
97 | #if !defined PRIu8 || @PRI_MACROS_BROKEN@ | |
98 | # undef PRIu8 | |
99 | # ifdef UINT8_MAX | |
100 | # define PRIu8 "u" | |
55a8c076 | 101 | # endif |
770d76d7 PA |
102 | #endif |
103 | #if !defined PRIx8 || @PRI_MACROS_BROKEN@ | |
104 | # undef PRIx8 | |
105 | # ifdef UINT8_MAX | |
106 | # define PRIx8 "x" | |
55a8c076 | 107 | # endif |
770d76d7 PA |
108 | #endif |
109 | #if !defined PRIX8 || @PRI_MACROS_BROKEN@ | |
110 | # undef PRIX8 | |
111 | # ifdef UINT8_MAX | |
112 | # define PRIX8 "X" | |
55a8c076 | 113 | # endif |
770d76d7 PA |
114 | #endif |
115 | #if !defined PRId16 || @PRI_MACROS_BROKEN@ | |
116 | # undef PRId16 | |
117 | # ifdef INT16_MAX | |
118 | # define PRId16 "d" | |
55a8c076 | 119 | # endif |
770d76d7 PA |
120 | #endif |
121 | #if !defined PRIi16 || @PRI_MACROS_BROKEN@ | |
122 | # undef PRIi16 | |
123 | # ifdef INT16_MAX | |
124 | # define PRIi16 "i" | |
55a8c076 | 125 | # endif |
770d76d7 PA |
126 | #endif |
127 | #if !defined PRIo16 || @PRI_MACROS_BROKEN@ | |
128 | # undef PRIo16 | |
129 | # ifdef UINT16_MAX | |
130 | # define PRIo16 "o" | |
55a8c076 | 131 | # endif |
770d76d7 PA |
132 | #endif |
133 | #if !defined PRIu16 || @PRI_MACROS_BROKEN@ | |
134 | # undef PRIu16 | |
135 | # ifdef UINT16_MAX | |
136 | # define PRIu16 "u" | |
55a8c076 | 137 | # endif |
770d76d7 PA |
138 | #endif |
139 | #if !defined PRIx16 || @PRI_MACROS_BROKEN@ | |
140 | # undef PRIx16 | |
141 | # ifdef UINT16_MAX | |
142 | # define PRIx16 "x" | |
55a8c076 | 143 | # endif |
770d76d7 PA |
144 | #endif |
145 | #if !defined PRIX16 || @PRI_MACROS_BROKEN@ | |
146 | # undef PRIX16 | |
147 | # ifdef UINT16_MAX | |
148 | # define PRIX16 "X" | |
55a8c076 | 149 | # endif |
770d76d7 PA |
150 | #endif |
151 | #if !defined PRId32 || @PRI_MACROS_BROKEN@ | |
152 | # undef PRId32 | |
153 | # ifdef INT32_MAX | |
154 | # define PRId32 "d" | |
55a8c076 | 155 | # endif |
770d76d7 PA |
156 | #endif |
157 | #if !defined PRIi32 || @PRI_MACROS_BROKEN@ | |
158 | # undef PRIi32 | |
159 | # ifdef INT32_MAX | |
160 | # define PRIi32 "i" | |
55a8c076 | 161 | # endif |
770d76d7 PA |
162 | #endif |
163 | #if !defined PRIo32 || @PRI_MACROS_BROKEN@ | |
164 | # undef PRIo32 | |
165 | # ifdef UINT32_MAX | |
166 | # define PRIo32 "o" | |
55a8c076 | 167 | # endif |
770d76d7 PA |
168 | #endif |
169 | #if !defined PRIu32 || @PRI_MACROS_BROKEN@ | |
170 | # undef PRIu32 | |
171 | # ifdef UINT32_MAX | |
172 | # define PRIu32 "u" | |
55a8c076 | 173 | # endif |
770d76d7 PA |
174 | #endif |
175 | #if !defined PRIx32 || @PRI_MACROS_BROKEN@ | |
176 | # undef PRIx32 | |
177 | # ifdef UINT32_MAX | |
178 | # define PRIx32 "x" | |
55a8c076 | 179 | # endif |
770d76d7 PA |
180 | #endif |
181 | #if !defined PRIX32 || @PRI_MACROS_BROKEN@ | |
182 | # undef PRIX32 | |
183 | # ifdef UINT32_MAX | |
184 | # define PRIX32 "X" | |
55a8c076 | 185 | # endif |
770d76d7 PA |
186 | #endif |
187 | #ifdef INT64_MAX | |
188 | # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@) | |
189 | # define _PRI64_PREFIX "l" | |
190 | # elif defined _MSC_VER || defined __MINGW32__ | |
191 | # define _PRI64_PREFIX "I64" | |
192 | # elif @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 | |
193 | # define _PRI64_PREFIX _LONG_LONG_FORMAT_PREFIX | |
194 | # endif | |
195 | # if !defined PRId64 || @PRI_MACROS_BROKEN@ | |
196 | # undef PRId64 | |
197 | # define PRId64 _PRI64_PREFIX "d" | |
198 | # endif | |
199 | # if !defined PRIi64 || @PRI_MACROS_BROKEN@ | |
200 | # undef PRIi64 | |
201 | # define PRIi64 _PRI64_PREFIX "i" | |
55a8c076 | 202 | # endif |
770d76d7 PA |
203 | #endif |
204 | #ifdef UINT64_MAX | |
205 | # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@) | |
206 | # define _PRIu64_PREFIX "l" | |
207 | # elif defined _MSC_VER || defined __MINGW32__ | |
208 | # define _PRIu64_PREFIX "I64" | |
209 | # elif @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 | |
210 | # define _PRIu64_PREFIX _LONG_LONG_FORMAT_PREFIX | |
211 | # endif | |
212 | # if !defined PRIo64 || @PRI_MACROS_BROKEN@ | |
213 | # undef PRIo64 | |
214 | # define PRIo64 _PRIu64_PREFIX "o" | |
215 | # endif | |
216 | # if !defined PRIu64 || @PRI_MACROS_BROKEN@ | |
217 | # undef PRIu64 | |
218 | # define PRIu64 _PRIu64_PREFIX "u" | |
219 | # endif | |
220 | # if !defined PRIx64 || @PRI_MACROS_BROKEN@ | |
221 | # undef PRIx64 | |
222 | # define PRIx64 _PRIu64_PREFIX "x" | |
223 | # endif | |
224 | # if !defined PRIX64 || @PRI_MACROS_BROKEN@ | |
225 | # undef PRIX64 | |
226 | # define PRIX64 _PRIu64_PREFIX "X" | |
55a8c076 | 227 | # endif |
770d76d7 | 228 | #endif |
55a8c076 | 229 | |
770d76d7 PA |
230 | #if !defined PRIdLEAST8 || @PRI_MACROS_BROKEN@ |
231 | # undef PRIdLEAST8 | |
232 | # define PRIdLEAST8 "d" | |
233 | #endif | |
234 | #if !defined PRIiLEAST8 || @PRI_MACROS_BROKEN@ | |
235 | # undef PRIiLEAST8 | |
236 | # define PRIiLEAST8 "i" | |
237 | #endif | |
238 | #if !defined PRIoLEAST8 || @PRI_MACROS_BROKEN@ | |
239 | # undef PRIoLEAST8 | |
240 | # define PRIoLEAST8 "o" | |
241 | #endif | |
242 | #if !defined PRIuLEAST8 || @PRI_MACROS_BROKEN@ | |
243 | # undef PRIuLEAST8 | |
244 | # define PRIuLEAST8 "u" | |
245 | #endif | |
246 | #if !defined PRIxLEAST8 || @PRI_MACROS_BROKEN@ | |
247 | # undef PRIxLEAST8 | |
248 | # define PRIxLEAST8 "x" | |
249 | #endif | |
250 | #if !defined PRIXLEAST8 || @PRI_MACROS_BROKEN@ | |
251 | # undef PRIXLEAST8 | |
252 | # define PRIXLEAST8 "X" | |
253 | #endif | |
254 | #if !defined PRIdLEAST16 || @PRI_MACROS_BROKEN@ | |
255 | # undef PRIdLEAST16 | |
256 | # define PRIdLEAST16 "d" | |
257 | #endif | |
258 | #if !defined PRIiLEAST16 || @PRI_MACROS_BROKEN@ | |
259 | # undef PRIiLEAST16 | |
260 | # define PRIiLEAST16 "i" | |
261 | #endif | |
262 | #if !defined PRIoLEAST16 || @PRI_MACROS_BROKEN@ | |
263 | # undef PRIoLEAST16 | |
264 | # define PRIoLEAST16 "o" | |
265 | #endif | |
266 | #if !defined PRIuLEAST16 || @PRI_MACROS_BROKEN@ | |
267 | # undef PRIuLEAST16 | |
268 | # define PRIuLEAST16 "u" | |
269 | #endif | |
270 | #if !defined PRIxLEAST16 || @PRI_MACROS_BROKEN@ | |
271 | # undef PRIxLEAST16 | |
272 | # define PRIxLEAST16 "x" | |
273 | #endif | |
274 | #if !defined PRIXLEAST16 || @PRI_MACROS_BROKEN@ | |
275 | # undef PRIXLEAST16 | |
276 | # define PRIXLEAST16 "X" | |
277 | #endif | |
278 | #if !defined PRIdLEAST32 || @PRI_MACROS_BROKEN@ | |
279 | # undef PRIdLEAST32 | |
280 | # define PRIdLEAST32 "d" | |
281 | #endif | |
282 | #if !defined PRIiLEAST32 || @PRI_MACROS_BROKEN@ | |
283 | # undef PRIiLEAST32 | |
284 | # define PRIiLEAST32 "i" | |
285 | #endif | |
286 | #if !defined PRIoLEAST32 || @PRI_MACROS_BROKEN@ | |
287 | # undef PRIoLEAST32 | |
288 | # define PRIoLEAST32 "o" | |
289 | #endif | |
290 | #if !defined PRIuLEAST32 || @PRI_MACROS_BROKEN@ | |
291 | # undef PRIuLEAST32 | |
292 | # define PRIuLEAST32 "u" | |
293 | #endif | |
294 | #if !defined PRIxLEAST32 || @PRI_MACROS_BROKEN@ | |
295 | # undef PRIxLEAST32 | |
296 | # define PRIxLEAST32 "x" | |
297 | #endif | |
298 | #if !defined PRIXLEAST32 || @PRI_MACROS_BROKEN@ | |
299 | # undef PRIXLEAST32 | |
300 | # define PRIXLEAST32 "X" | |
301 | #endif | |
302 | #ifdef INT64_MAX | |
303 | # if !defined PRIdLEAST64 || @PRI_MACROS_BROKEN@ | |
304 | # undef PRIdLEAST64 | |
305 | # define PRIdLEAST64 PRId64 | |
55a8c076 | 306 | # endif |
770d76d7 PA |
307 | # if !defined PRIiLEAST64 || @PRI_MACROS_BROKEN@ |
308 | # undef PRIiLEAST64 | |
309 | # define PRIiLEAST64 PRIi64 | |
310 | # endif | |
311 | #endif | |
312 | #ifdef UINT64_MAX | |
313 | # if !defined PRIoLEAST64 || @PRI_MACROS_BROKEN@ | |
314 | # undef PRIoLEAST64 | |
315 | # define PRIoLEAST64 PRIo64 | |
316 | # endif | |
317 | # if !defined PRIuLEAST64 || @PRI_MACROS_BROKEN@ | |
318 | # undef PRIuLEAST64 | |
319 | # define PRIuLEAST64 PRIu64 | |
320 | # endif | |
321 | # if !defined PRIxLEAST64 || @PRI_MACROS_BROKEN@ | |
322 | # undef PRIxLEAST64 | |
323 | # define PRIxLEAST64 PRIx64 | |
55a8c076 | 324 | # endif |
770d76d7 PA |
325 | # if !defined PRIXLEAST64 || @PRI_MACROS_BROKEN@ |
326 | # undef PRIXLEAST64 | |
327 | # define PRIXLEAST64 PRIX64 | |
328 | # endif | |
329 | #endif | |
55a8c076 | 330 | |
770d76d7 PA |
331 | #if !defined PRIdFAST8 || @PRI_MACROS_BROKEN@ |
332 | # undef PRIdFAST8 | |
333 | # if INT_FAST8_MAX > INT32_MAX | |
334 | # define PRIdFAST8 PRId64 | |
335 | # else | |
336 | # define PRIdFAST8 "d" | |
55a8c076 | 337 | # endif |
770d76d7 PA |
338 | #endif |
339 | #if !defined PRIiFAST8 || @PRI_MACROS_BROKEN@ | |
340 | # undef PRIiFAST8 | |
341 | # if INT_FAST8_MAX > INT32_MAX | |
342 | # define PRIiFAST8 PRIi64 | |
343 | # else | |
344 | # define PRIiFAST8 "i" | |
55a8c076 | 345 | # endif |
770d76d7 PA |
346 | #endif |
347 | #if !defined PRIoFAST8 || @PRI_MACROS_BROKEN@ | |
348 | # undef PRIoFAST8 | |
349 | # if UINT_FAST8_MAX > UINT32_MAX | |
350 | # define PRIoFAST8 PRIo64 | |
351 | # else | |
352 | # define PRIoFAST8 "o" | |
55a8c076 | 353 | # endif |
770d76d7 PA |
354 | #endif |
355 | #if !defined PRIuFAST8 || @PRI_MACROS_BROKEN@ | |
356 | # undef PRIuFAST8 | |
357 | # if UINT_FAST8_MAX > UINT32_MAX | |
358 | # define PRIuFAST8 PRIu64 | |
359 | # else | |
360 | # define PRIuFAST8 "u" | |
55a8c076 | 361 | # endif |
770d76d7 PA |
362 | #endif |
363 | #if !defined PRIxFAST8 || @PRI_MACROS_BROKEN@ | |
364 | # undef PRIxFAST8 | |
365 | # if UINT_FAST8_MAX > UINT32_MAX | |
366 | # define PRIxFAST8 PRIx64 | |
367 | # else | |
368 | # define PRIxFAST8 "x" | |
55a8c076 | 369 | # endif |
770d76d7 PA |
370 | #endif |
371 | #if !defined PRIXFAST8 || @PRI_MACROS_BROKEN@ | |
372 | # undef PRIXFAST8 | |
373 | # if UINT_FAST8_MAX > UINT32_MAX | |
374 | # define PRIXFAST8 PRIX64 | |
375 | # else | |
376 | # define PRIXFAST8 "X" | |
55a8c076 | 377 | # endif |
770d76d7 PA |
378 | #endif |
379 | #if !defined PRIdFAST16 || @PRI_MACROS_BROKEN@ | |
380 | # undef PRIdFAST16 | |
381 | # if INT_FAST16_MAX > INT32_MAX | |
382 | # define PRIdFAST16 PRId64 | |
383 | # else | |
384 | # define PRIdFAST16 "d" | |
55a8c076 | 385 | # endif |
770d76d7 PA |
386 | #endif |
387 | #if !defined PRIiFAST16 || @PRI_MACROS_BROKEN@ | |
388 | # undef PRIiFAST16 | |
389 | # if INT_FAST16_MAX > INT32_MAX | |
390 | # define PRIiFAST16 PRIi64 | |
391 | # else | |
392 | # define PRIiFAST16 "i" | |
55a8c076 | 393 | # endif |
770d76d7 PA |
394 | #endif |
395 | #if !defined PRIoFAST16 || @PRI_MACROS_BROKEN@ | |
396 | # undef PRIoFAST16 | |
397 | # if UINT_FAST16_MAX > UINT32_MAX | |
398 | # define PRIoFAST16 PRIo64 | |
399 | # else | |
400 | # define PRIoFAST16 "o" | |
55a8c076 | 401 | # endif |
770d76d7 PA |
402 | #endif |
403 | #if !defined PRIuFAST16 || @PRI_MACROS_BROKEN@ | |
404 | # undef PRIuFAST16 | |
405 | # if UINT_FAST16_MAX > UINT32_MAX | |
406 | # define PRIuFAST16 PRIu64 | |
407 | # else | |
408 | # define PRIuFAST16 "u" | |
55a8c076 | 409 | # endif |
770d76d7 PA |
410 | #endif |
411 | #if !defined PRIxFAST16 || @PRI_MACROS_BROKEN@ | |
412 | # undef PRIxFAST16 | |
413 | # if UINT_FAST16_MAX > UINT32_MAX | |
414 | # define PRIxFAST16 PRIx64 | |
415 | # else | |
416 | # define PRIxFAST16 "x" | |
55a8c076 | 417 | # endif |
770d76d7 PA |
418 | #endif |
419 | #if !defined PRIXFAST16 || @PRI_MACROS_BROKEN@ | |
420 | # undef PRIXFAST16 | |
421 | # if UINT_FAST16_MAX > UINT32_MAX | |
422 | # define PRIXFAST16 PRIX64 | |
423 | # else | |
424 | # define PRIXFAST16 "X" | |
55a8c076 | 425 | # endif |
770d76d7 PA |
426 | #endif |
427 | #if !defined PRIdFAST32 || @PRI_MACROS_BROKEN@ | |
428 | # undef PRIdFAST32 | |
429 | # if INT_FAST32_MAX > INT32_MAX | |
430 | # define PRIdFAST32 PRId64 | |
431 | # else | |
432 | # define PRIdFAST32 "d" | |
55a8c076 | 433 | # endif |
770d76d7 PA |
434 | #endif |
435 | #if !defined PRIiFAST32 || @PRI_MACROS_BROKEN@ | |
436 | # undef PRIiFAST32 | |
437 | # if INT_FAST32_MAX > INT32_MAX | |
438 | # define PRIiFAST32 PRIi64 | |
439 | # else | |
440 | # define PRIiFAST32 "i" | |
55a8c076 | 441 | # endif |
770d76d7 PA |
442 | #endif |
443 | #if !defined PRIoFAST32 || @PRI_MACROS_BROKEN@ | |
444 | # undef PRIoFAST32 | |
445 | # if UINT_FAST32_MAX > UINT32_MAX | |
446 | # define PRIoFAST32 PRIo64 | |
447 | # else | |
448 | # define PRIoFAST32 "o" | |
55a8c076 | 449 | # endif |
770d76d7 PA |
450 | #endif |
451 | #if !defined PRIuFAST32 || @PRI_MACROS_BROKEN@ | |
452 | # undef PRIuFAST32 | |
453 | # if UINT_FAST32_MAX > UINT32_MAX | |
454 | # define PRIuFAST32 PRIu64 | |
455 | # else | |
456 | # define PRIuFAST32 "u" | |
55a8c076 | 457 | # endif |
770d76d7 PA |
458 | #endif |
459 | #if !defined PRIxFAST32 || @PRI_MACROS_BROKEN@ | |
460 | # undef PRIxFAST32 | |
461 | # if UINT_FAST32_MAX > UINT32_MAX | |
462 | # define PRIxFAST32 PRIx64 | |
463 | # else | |
464 | # define PRIxFAST32 "x" | |
55a8c076 | 465 | # endif |
770d76d7 PA |
466 | #endif |
467 | #if !defined PRIXFAST32 || @PRI_MACROS_BROKEN@ | |
468 | # undef PRIXFAST32 | |
469 | # if UINT_FAST32_MAX > UINT32_MAX | |
470 | # define PRIXFAST32 PRIX64 | |
471 | # else | |
472 | # define PRIXFAST32 "X" | |
55a8c076 | 473 | # endif |
770d76d7 PA |
474 | #endif |
475 | #ifdef INT64_MAX | |
476 | # if !defined PRIdFAST64 || @PRI_MACROS_BROKEN@ | |
477 | # undef PRIdFAST64 | |
478 | # define PRIdFAST64 PRId64 | |
55a8c076 | 479 | # endif |
770d76d7 PA |
480 | # if !defined PRIiFAST64 || @PRI_MACROS_BROKEN@ |
481 | # undef PRIiFAST64 | |
482 | # define PRIiFAST64 PRIi64 | |
55a8c076 | 483 | # endif |
770d76d7 PA |
484 | #endif |
485 | #ifdef UINT64_MAX | |
486 | # if !defined PRIoFAST64 || @PRI_MACROS_BROKEN@ | |
487 | # undef PRIoFAST64 | |
488 | # define PRIoFAST64 PRIo64 | |
489 | # endif | |
490 | # if !defined PRIuFAST64 || @PRI_MACROS_BROKEN@ | |
491 | # undef PRIuFAST64 | |
492 | # define PRIuFAST64 PRIu64 | |
493 | # endif | |
494 | # if !defined PRIxFAST64 || @PRI_MACROS_BROKEN@ | |
495 | # undef PRIxFAST64 | |
496 | # define PRIxFAST64 PRIx64 | |
497 | # endif | |
498 | # if !defined PRIXFAST64 || @PRI_MACROS_BROKEN@ | |
499 | # undef PRIXFAST64 | |
500 | # define PRIXFAST64 PRIX64 | |
501 | # endif | |
502 | #endif | |
55a8c076 | 503 | |
770d76d7 PA |
504 | #if !defined PRIdMAX || @PRI_MACROS_BROKEN@ |
505 | # undef PRIdMAX | |
506 | # if @INT32_MAX_LT_INTMAX_MAX@ | |
507 | # define PRIdMAX PRId64 | |
508 | # else | |
509 | # define PRIdMAX "ld" | |
55a8c076 | 510 | # endif |
770d76d7 PA |
511 | #endif |
512 | #if !defined PRIiMAX || @PRI_MACROS_BROKEN@ | |
513 | # undef PRIiMAX | |
514 | # if @INT32_MAX_LT_INTMAX_MAX@ | |
515 | # define PRIiMAX PRIi64 | |
516 | # else | |
517 | # define PRIiMAX "li" | |
55a8c076 | 518 | # endif |
770d76d7 PA |
519 | #endif |
520 | #if !defined PRIoMAX || @PRI_MACROS_BROKEN@ | |
521 | # undef PRIoMAX | |
522 | # if @UINT32_MAX_LT_UINTMAX_MAX@ | |
523 | # define PRIoMAX PRIo64 | |
524 | # else | |
525 | # define PRIoMAX "lo" | |
55a8c076 | 526 | # endif |
770d76d7 PA |
527 | #endif |
528 | #if !defined PRIuMAX || @PRI_MACROS_BROKEN@ | |
529 | # undef PRIuMAX | |
530 | # if @UINT32_MAX_LT_UINTMAX_MAX@ | |
531 | # define PRIuMAX PRIu64 | |
532 | # else | |
533 | # define PRIuMAX "lu" | |
55a8c076 | 534 | # endif |
770d76d7 PA |
535 | #endif |
536 | #if !defined PRIxMAX || @PRI_MACROS_BROKEN@ | |
537 | # undef PRIxMAX | |
538 | # if @UINT32_MAX_LT_UINTMAX_MAX@ | |
539 | # define PRIxMAX PRIx64 | |
540 | # else | |
541 | # define PRIxMAX "lx" | |
55a8c076 | 542 | # endif |
770d76d7 PA |
543 | #endif |
544 | #if !defined PRIXMAX || @PRI_MACROS_BROKEN@ | |
545 | # undef PRIXMAX | |
546 | # if @UINT32_MAX_LT_UINTMAX_MAX@ | |
547 | # define PRIXMAX PRIX64 | |
548 | # else | |
549 | # define PRIXMAX "lX" | |
55a8c076 | 550 | # endif |
770d76d7 | 551 | #endif |
55a8c076 | 552 | |
770d76d7 PA |
553 | #if !defined PRIdPTR || @PRI_MACROS_BROKEN@ |
554 | # undef PRIdPTR | |
555 | # ifdef INTPTR_MAX | |
556 | # define PRIdPTR @PRIPTR_PREFIX@ "d" | |
55a8c076 | 557 | # endif |
770d76d7 PA |
558 | #endif |
559 | #if !defined PRIiPTR || @PRI_MACROS_BROKEN@ | |
560 | # undef PRIiPTR | |
561 | # ifdef INTPTR_MAX | |
562 | # define PRIiPTR @PRIPTR_PREFIX@ "i" | |
55a8c076 | 563 | # endif |
770d76d7 PA |
564 | #endif |
565 | #if !defined PRIoPTR || @PRI_MACROS_BROKEN@ | |
566 | # undef PRIoPTR | |
567 | # ifdef UINTPTR_MAX | |
568 | # define PRIoPTR @PRIPTR_PREFIX@ "o" | |
55a8c076 | 569 | # endif |
770d76d7 PA |
570 | #endif |
571 | #if !defined PRIuPTR || @PRI_MACROS_BROKEN@ | |
572 | # undef PRIuPTR | |
573 | # ifdef UINTPTR_MAX | |
574 | # define PRIuPTR @PRIPTR_PREFIX@ "u" | |
55a8c076 | 575 | # endif |
770d76d7 PA |
576 | #endif |
577 | #if !defined PRIxPTR || @PRI_MACROS_BROKEN@ | |
578 | # undef PRIxPTR | |
579 | # ifdef UINTPTR_MAX | |
580 | # define PRIxPTR @PRIPTR_PREFIX@ "x" | |
55a8c076 | 581 | # endif |
770d76d7 PA |
582 | #endif |
583 | #if !defined PRIXPTR || @PRI_MACROS_BROKEN@ | |
584 | # undef PRIXPTR | |
585 | # ifdef UINTPTR_MAX | |
586 | # define PRIXPTR @PRIPTR_PREFIX@ "X" | |
55a8c076 | 587 | # endif |
770d76d7 | 588 | #endif |
55a8c076 | 589 | |
770d76d7 PA |
590 | #if !defined SCNd8 || @PRI_MACROS_BROKEN@ |
591 | # undef SCNd8 | |
592 | # ifdef INT8_MAX | |
593 | # define SCNd8 "hhd" | |
55a8c076 | 594 | # endif |
770d76d7 PA |
595 | #endif |
596 | #if !defined SCNi8 || @PRI_MACROS_BROKEN@ | |
597 | # undef SCNi8 | |
598 | # ifdef INT8_MAX | |
599 | # define SCNi8 "hhi" | |
55a8c076 | 600 | # endif |
770d76d7 PA |
601 | #endif |
602 | #if !defined SCNo8 || @PRI_MACROS_BROKEN@ | |
603 | # undef SCNo8 | |
604 | # ifdef UINT8_MAX | |
605 | # define SCNo8 "hho" | |
55a8c076 | 606 | # endif |
770d76d7 PA |
607 | #endif |
608 | #if !defined SCNu8 || @PRI_MACROS_BROKEN@ | |
609 | # undef SCNu8 | |
610 | # ifdef UINT8_MAX | |
611 | # define SCNu8 "hhu" | |
55a8c076 | 612 | # endif |
770d76d7 PA |
613 | #endif |
614 | #if !defined SCNx8 || @PRI_MACROS_BROKEN@ | |
615 | # undef SCNx8 | |
616 | # ifdef UINT8_MAX | |
617 | # define SCNx8 "hhx" | |
55a8c076 | 618 | # endif |
770d76d7 PA |
619 | #endif |
620 | #if !defined SCNd16 || @PRI_MACROS_BROKEN@ | |
621 | # undef SCNd16 | |
622 | # ifdef INT16_MAX | |
623 | # define SCNd16 "hd" | |
55a8c076 | 624 | # endif |
770d76d7 PA |
625 | #endif |
626 | #if !defined SCNi16 || @PRI_MACROS_BROKEN@ | |
627 | # undef SCNi16 | |
628 | # ifdef INT16_MAX | |
629 | # define SCNi16 "hi" | |
55a8c076 | 630 | # endif |
770d76d7 PA |
631 | #endif |
632 | #if !defined SCNo16 || @PRI_MACROS_BROKEN@ | |
633 | # undef SCNo16 | |
634 | # ifdef UINT16_MAX | |
635 | # define SCNo16 "ho" | |
55a8c076 | 636 | # endif |
770d76d7 PA |
637 | #endif |
638 | #if !defined SCNu16 || @PRI_MACROS_BROKEN@ | |
639 | # undef SCNu16 | |
640 | # ifdef UINT16_MAX | |
641 | # define SCNu16 "hu" | |
55a8c076 | 642 | # endif |
770d76d7 PA |
643 | #endif |
644 | #if !defined SCNx16 || @PRI_MACROS_BROKEN@ | |
645 | # undef SCNx16 | |
646 | # ifdef UINT16_MAX | |
647 | # define SCNx16 "hx" | |
55a8c076 | 648 | # endif |
770d76d7 PA |
649 | #endif |
650 | #if !defined SCNd32 || @PRI_MACROS_BROKEN@ | |
651 | # undef SCNd32 | |
652 | # ifdef INT32_MAX | |
653 | # define SCNd32 "d" | |
55a8c076 | 654 | # endif |
770d76d7 PA |
655 | #endif |
656 | #if !defined SCNi32 || @PRI_MACROS_BROKEN@ | |
657 | # undef SCNi32 | |
658 | # ifdef INT32_MAX | |
659 | # define SCNi32 "i" | |
55a8c076 | 660 | # endif |
770d76d7 PA |
661 | #endif |
662 | #if !defined SCNo32 || @PRI_MACROS_BROKEN@ | |
663 | # undef SCNo32 | |
664 | # ifdef UINT32_MAX | |
665 | # define SCNo32 "o" | |
55a8c076 | 666 | # endif |
770d76d7 PA |
667 | #endif |
668 | #if !defined SCNu32 || @PRI_MACROS_BROKEN@ | |
669 | # undef SCNu32 | |
670 | # ifdef UINT32_MAX | |
671 | # define SCNu32 "u" | |
55a8c076 | 672 | # endif |
770d76d7 PA |
673 | #endif |
674 | #if !defined SCNx32 || @PRI_MACROS_BROKEN@ | |
675 | # undef SCNx32 | |
676 | # ifdef UINT32_MAX | |
677 | # define SCNx32 "x" | |
55a8c076 | 678 | # endif |
770d76d7 PA |
679 | #endif |
680 | #ifdef INT64_MAX | |
681 | # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@) | |
682 | # define _SCN64_PREFIX "l" | |
683 | # elif defined _MSC_VER || defined __MINGW32__ | |
684 | # define _SCN64_PREFIX "I64" | |
685 | # elif @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 | |
686 | # define _SCN64_PREFIX _LONG_LONG_FORMAT_PREFIX | |
687 | # endif | |
688 | # if !defined SCNd64 || @PRI_MACROS_BROKEN@ | |
689 | # undef SCNd64 | |
690 | # define SCNd64 _SCN64_PREFIX "d" | |
691 | # endif | |
692 | # if !defined SCNi64 || @PRI_MACROS_BROKEN@ | |
693 | # undef SCNi64 | |
694 | # define SCNi64 _SCN64_PREFIX "i" | |
55a8c076 | 695 | # endif |
770d76d7 PA |
696 | #endif |
697 | #ifdef UINT64_MAX | |
698 | # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@) | |
699 | # define _SCNu64_PREFIX "l" | |
700 | # elif defined _MSC_VER || defined __MINGW32__ | |
701 | # define _SCNu64_PREFIX "I64" | |
702 | # elif @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 | |
703 | # define _SCNu64_PREFIX _LONG_LONG_FORMAT_PREFIX | |
704 | # endif | |
705 | # if !defined SCNo64 || @PRI_MACROS_BROKEN@ | |
706 | # undef SCNo64 | |
707 | # define SCNo64 _SCNu64_PREFIX "o" | |
708 | # endif | |
709 | # if !defined SCNu64 || @PRI_MACROS_BROKEN@ | |
710 | # undef SCNu64 | |
711 | # define SCNu64 _SCNu64_PREFIX "u" | |
712 | # endif | |
713 | # if !defined SCNx64 || @PRI_MACROS_BROKEN@ | |
714 | # undef SCNx64 | |
715 | # define SCNx64 _SCNu64_PREFIX "x" | |
55a8c076 | 716 | # endif |
770d76d7 | 717 | #endif |
55a8c076 | 718 | |
770d76d7 PA |
719 | #if !defined SCNdLEAST8 || @PRI_MACROS_BROKEN@ |
720 | # undef SCNdLEAST8 | |
721 | # define SCNdLEAST8 "hhd" | |
722 | #endif | |
723 | #if !defined SCNiLEAST8 || @PRI_MACROS_BROKEN@ | |
724 | # undef SCNiLEAST8 | |
725 | # define SCNiLEAST8 "hhi" | |
726 | #endif | |
727 | #if !defined SCNoLEAST8 || @PRI_MACROS_BROKEN@ | |
728 | # undef SCNoLEAST8 | |
729 | # define SCNoLEAST8 "hho" | |
730 | #endif | |
731 | #if !defined SCNuLEAST8 || @PRI_MACROS_BROKEN@ | |
732 | # undef SCNuLEAST8 | |
733 | # define SCNuLEAST8 "hhu" | |
734 | #endif | |
735 | #if !defined SCNxLEAST8 || @PRI_MACROS_BROKEN@ | |
736 | # undef SCNxLEAST8 | |
737 | # define SCNxLEAST8 "hhx" | |
738 | #endif | |
739 | #if !defined SCNdLEAST16 || @PRI_MACROS_BROKEN@ | |
740 | # undef SCNdLEAST16 | |
741 | # define SCNdLEAST16 "hd" | |
742 | #endif | |
743 | #if !defined SCNiLEAST16 || @PRI_MACROS_BROKEN@ | |
744 | # undef SCNiLEAST16 | |
745 | # define SCNiLEAST16 "hi" | |
746 | #endif | |
747 | #if !defined SCNoLEAST16 || @PRI_MACROS_BROKEN@ | |
748 | # undef SCNoLEAST16 | |
749 | # define SCNoLEAST16 "ho" | |
750 | #endif | |
751 | #if !defined SCNuLEAST16 || @PRI_MACROS_BROKEN@ | |
752 | # undef SCNuLEAST16 | |
753 | # define SCNuLEAST16 "hu" | |
754 | #endif | |
755 | #if !defined SCNxLEAST16 || @PRI_MACROS_BROKEN@ | |
756 | # undef SCNxLEAST16 | |
757 | # define SCNxLEAST16 "hx" | |
758 | #endif | |
759 | #if !defined SCNdLEAST32 || @PRI_MACROS_BROKEN@ | |
760 | # undef SCNdLEAST32 | |
761 | # define SCNdLEAST32 "d" | |
762 | #endif | |
763 | #if !defined SCNiLEAST32 || @PRI_MACROS_BROKEN@ | |
764 | # undef SCNiLEAST32 | |
765 | # define SCNiLEAST32 "i" | |
766 | #endif | |
767 | #if !defined SCNoLEAST32 || @PRI_MACROS_BROKEN@ | |
768 | # undef SCNoLEAST32 | |
769 | # define SCNoLEAST32 "o" | |
770 | #endif | |
771 | #if !defined SCNuLEAST32 || @PRI_MACROS_BROKEN@ | |
772 | # undef SCNuLEAST32 | |
773 | # define SCNuLEAST32 "u" | |
774 | #endif | |
775 | #if !defined SCNxLEAST32 || @PRI_MACROS_BROKEN@ | |
776 | # undef SCNxLEAST32 | |
777 | # define SCNxLEAST32 "x" | |
778 | #endif | |
779 | #ifdef INT64_MAX | |
780 | # if !defined SCNdLEAST64 || @PRI_MACROS_BROKEN@ | |
781 | # undef SCNdLEAST64 | |
782 | # define SCNdLEAST64 SCNd64 | |
55a8c076 | 783 | # endif |
770d76d7 PA |
784 | # if !defined SCNiLEAST64 || @PRI_MACROS_BROKEN@ |
785 | # undef SCNiLEAST64 | |
786 | # define SCNiLEAST64 SCNi64 | |
787 | # endif | |
788 | #endif | |
789 | #ifdef UINT64_MAX | |
790 | # if !defined SCNoLEAST64 || @PRI_MACROS_BROKEN@ | |
791 | # undef SCNoLEAST64 | |
792 | # define SCNoLEAST64 SCNo64 | |
55a8c076 | 793 | # endif |
770d76d7 PA |
794 | # if !defined SCNuLEAST64 || @PRI_MACROS_BROKEN@ |
795 | # undef SCNuLEAST64 | |
796 | # define SCNuLEAST64 SCNu64 | |
797 | # endif | |
798 | # if !defined SCNxLEAST64 || @PRI_MACROS_BROKEN@ | |
799 | # undef SCNxLEAST64 | |
800 | # define SCNxLEAST64 SCNx64 | |
801 | # endif | |
802 | #endif | |
55a8c076 | 803 | |
770d76d7 PA |
804 | #if !defined SCNdFAST8 || @PRI_MACROS_BROKEN@ |
805 | # undef SCNdFAST8 | |
806 | # if INT_FAST8_MAX > INT32_MAX | |
807 | # define SCNdFAST8 SCNd64 | |
808 | # elif INT_FAST8_MAX == 0x7fff | |
809 | # define SCNdFAST8 "hd" | |
810 | # elif INT_FAST8_MAX == 0x7f | |
811 | # define SCNdFAST8 "hhd" | |
812 | # else | |
813 | # define SCNdFAST8 "d" | |
55a8c076 | 814 | # endif |
770d76d7 PA |
815 | #endif |
816 | #if !defined SCNiFAST8 || @PRI_MACROS_BROKEN@ | |
817 | # undef SCNiFAST8 | |
818 | # if INT_FAST8_MAX > INT32_MAX | |
819 | # define SCNiFAST8 SCNi64 | |
820 | # elif INT_FAST8_MAX == 0x7fff | |
821 | # define SCNiFAST8 "hi" | |
822 | # elif INT_FAST8_MAX == 0x7f | |
823 | # define SCNiFAST8 "hhi" | |
824 | # else | |
825 | # define SCNiFAST8 "i" | |
55a8c076 | 826 | # endif |
770d76d7 PA |
827 | #endif |
828 | #if !defined SCNoFAST8 || @PRI_MACROS_BROKEN@ | |
829 | # undef SCNoFAST8 | |
830 | # if UINT_FAST8_MAX > UINT32_MAX | |
831 | # define SCNoFAST8 SCNo64 | |
832 | # elif UINT_FAST8_MAX == 0xffff | |
833 | # define SCNoFAST8 "ho" | |
834 | # elif UINT_FAST8_MAX == 0xff | |
835 | # define SCNoFAST8 "hho" | |
836 | # else | |
837 | # define SCNoFAST8 "o" | |
55a8c076 | 838 | # endif |
770d76d7 PA |
839 | #endif |
840 | #if !defined SCNuFAST8 || @PRI_MACROS_BROKEN@ | |
841 | # undef SCNuFAST8 | |
842 | # if UINT_FAST8_MAX > UINT32_MAX | |
843 | # define SCNuFAST8 SCNu64 | |
844 | # elif UINT_FAST8_MAX == 0xffff | |
845 | # define SCNuFAST8 "hu" | |
846 | # elif UINT_FAST8_MAX == 0xff | |
847 | # define SCNuFAST8 "hhu" | |
848 | # else | |
849 | # define SCNuFAST8 "u" | |
55a8c076 | 850 | # endif |
770d76d7 PA |
851 | #endif |
852 | #if !defined SCNxFAST8 || @PRI_MACROS_BROKEN@ | |
853 | # undef SCNxFAST8 | |
854 | # if UINT_FAST8_MAX > UINT32_MAX | |
855 | # define SCNxFAST8 SCNx64 | |
856 | # elif UINT_FAST8_MAX == 0xffff | |
857 | # define SCNxFAST8 "hx" | |
858 | # elif UINT_FAST8_MAX == 0xff | |
859 | # define SCNxFAST8 "hhx" | |
860 | # else | |
861 | # define SCNxFAST8 "x" | |
55a8c076 | 862 | # endif |
770d76d7 PA |
863 | #endif |
864 | #if !defined SCNdFAST16 || @PRI_MACROS_BROKEN@ | |
865 | # undef SCNdFAST16 | |
866 | # if INT_FAST16_MAX > INT32_MAX | |
867 | # define SCNdFAST16 SCNd64 | |
868 | # elif INT_FAST16_MAX == 0x7fff | |
869 | # define SCNdFAST16 "hd" | |
870 | # else | |
871 | # define SCNdFAST16 "d" | |
55a8c076 | 872 | # endif |
770d76d7 PA |
873 | #endif |
874 | #if !defined SCNiFAST16 || @PRI_MACROS_BROKEN@ | |
875 | # undef SCNiFAST16 | |
876 | # if INT_FAST16_MAX > INT32_MAX | |
877 | # define SCNiFAST16 SCNi64 | |
878 | # elif INT_FAST16_MAX == 0x7fff | |
879 | # define SCNiFAST16 "hi" | |
880 | # else | |
881 | # define SCNiFAST16 "i" | |
55a8c076 | 882 | # endif |
770d76d7 PA |
883 | #endif |
884 | #if !defined SCNoFAST16 || @PRI_MACROS_BROKEN@ | |
885 | # undef SCNoFAST16 | |
886 | # if UINT_FAST16_MAX > UINT32_MAX | |
887 | # define SCNoFAST16 SCNo64 | |
888 | # elif UINT_FAST16_MAX == 0xffff | |
889 | # define SCNoFAST16 "ho" | |
890 | # else | |
891 | # define SCNoFAST16 "o" | |
55a8c076 | 892 | # endif |
770d76d7 PA |
893 | #endif |
894 | #if !defined SCNuFAST16 || @PRI_MACROS_BROKEN@ | |
895 | # undef SCNuFAST16 | |
896 | # if UINT_FAST16_MAX > UINT32_MAX | |
897 | # define SCNuFAST16 SCNu64 | |
898 | # elif UINT_FAST16_MAX == 0xffff | |
899 | # define SCNuFAST16 "hu" | |
900 | # else | |
901 | # define SCNuFAST16 "u" | |
55a8c076 | 902 | # endif |
770d76d7 PA |
903 | #endif |
904 | #if !defined SCNxFAST16 || @PRI_MACROS_BROKEN@ | |
905 | # undef SCNxFAST16 | |
906 | # if UINT_FAST16_MAX > UINT32_MAX | |
907 | # define SCNxFAST16 SCNx64 | |
908 | # elif UINT_FAST16_MAX == 0xffff | |
909 | # define SCNxFAST16 "hx" | |
910 | # else | |
911 | # define SCNxFAST16 "x" | |
55a8c076 | 912 | # endif |
770d76d7 PA |
913 | #endif |
914 | #if !defined SCNdFAST32 || @PRI_MACROS_BROKEN@ | |
915 | # undef SCNdFAST32 | |
916 | # if INT_FAST32_MAX > INT32_MAX | |
917 | # define SCNdFAST32 SCNd64 | |
918 | # else | |
919 | # define SCNdFAST32 "d" | |
55a8c076 | 920 | # endif |
770d76d7 PA |
921 | #endif |
922 | #if !defined SCNiFAST32 || @PRI_MACROS_BROKEN@ | |
923 | # undef SCNiFAST32 | |
924 | # if INT_FAST32_MAX > INT32_MAX | |
925 | # define SCNiFAST32 SCNi64 | |
926 | # else | |
927 | # define SCNiFAST32 "i" | |
55a8c076 | 928 | # endif |
770d76d7 PA |
929 | #endif |
930 | #if !defined SCNoFAST32 || @PRI_MACROS_BROKEN@ | |
931 | # undef SCNoFAST32 | |
932 | # if UINT_FAST32_MAX > UINT32_MAX | |
933 | # define SCNoFAST32 SCNo64 | |
934 | # else | |
935 | # define SCNoFAST32 "o" | |
55a8c076 | 936 | # endif |
770d76d7 PA |
937 | #endif |
938 | #if !defined SCNuFAST32 || @PRI_MACROS_BROKEN@ | |
939 | # undef SCNuFAST32 | |
940 | # if UINT_FAST32_MAX > UINT32_MAX | |
941 | # define SCNuFAST32 SCNu64 | |
942 | # else | |
943 | # define SCNuFAST32 "u" | |
55a8c076 | 944 | # endif |
770d76d7 PA |
945 | #endif |
946 | #if !defined SCNxFAST32 || @PRI_MACROS_BROKEN@ | |
947 | # undef SCNxFAST32 | |
948 | # if UINT_FAST32_MAX > UINT32_MAX | |
949 | # define SCNxFAST32 SCNx64 | |
950 | # else | |
951 | # define SCNxFAST32 "x" | |
55a8c076 | 952 | # endif |
770d76d7 PA |
953 | #endif |
954 | #ifdef INT64_MAX | |
955 | # if !defined SCNdFAST64 || @PRI_MACROS_BROKEN@ | |
956 | # undef SCNdFAST64 | |
957 | # define SCNdFAST64 SCNd64 | |
55a8c076 | 958 | # endif |
770d76d7 PA |
959 | # if !defined SCNiFAST64 || @PRI_MACROS_BROKEN@ |
960 | # undef SCNiFAST64 | |
961 | # define SCNiFAST64 SCNi64 | |
962 | # endif | |
963 | #endif | |
964 | #ifdef UINT64_MAX | |
965 | # if !defined SCNoFAST64 || @PRI_MACROS_BROKEN@ | |
966 | # undef SCNoFAST64 | |
967 | # define SCNoFAST64 SCNo64 | |
968 | # endif | |
969 | # if !defined SCNuFAST64 || @PRI_MACROS_BROKEN@ | |
970 | # undef SCNuFAST64 | |
971 | # define SCNuFAST64 SCNu64 | |
55a8c076 | 972 | # endif |
770d76d7 PA |
973 | # if !defined SCNxFAST64 || @PRI_MACROS_BROKEN@ |
974 | # undef SCNxFAST64 | |
975 | # define SCNxFAST64 SCNx64 | |
976 | # endif | |
977 | #endif | |
55a8c076 | 978 | |
770d76d7 PA |
979 | #if !defined SCNdMAX || @PRI_MACROS_BROKEN@ |
980 | # undef SCNdMAX | |
981 | # if @INT32_MAX_LT_INTMAX_MAX@ | |
982 | # define SCNdMAX SCNd64 | |
983 | # else | |
984 | # define SCNdMAX "ld" | |
55a8c076 | 985 | # endif |
770d76d7 PA |
986 | #endif |
987 | #if !defined SCNiMAX || @PRI_MACROS_BROKEN@ | |
988 | # undef SCNiMAX | |
989 | # if @INT32_MAX_LT_INTMAX_MAX@ | |
990 | # define SCNiMAX SCNi64 | |
991 | # else | |
992 | # define SCNiMAX "li" | |
55a8c076 | 993 | # endif |
770d76d7 PA |
994 | #endif |
995 | #if !defined SCNoMAX || @PRI_MACROS_BROKEN@ | |
996 | # undef SCNoMAX | |
997 | # if @UINT32_MAX_LT_UINTMAX_MAX@ | |
998 | # define SCNoMAX SCNo64 | |
999 | # else | |
1000 | # define SCNoMAX "lo" | |
55a8c076 | 1001 | # endif |
770d76d7 PA |
1002 | #endif |
1003 | #if !defined SCNuMAX || @PRI_MACROS_BROKEN@ | |
1004 | # undef SCNuMAX | |
1005 | # if @UINT32_MAX_LT_UINTMAX_MAX@ | |
1006 | # define SCNuMAX SCNu64 | |
1007 | # else | |
1008 | # define SCNuMAX "lu" | |
55a8c076 | 1009 | # endif |
770d76d7 PA |
1010 | #endif |
1011 | #if !defined SCNxMAX || @PRI_MACROS_BROKEN@ | |
1012 | # undef SCNxMAX | |
1013 | # if @UINT32_MAX_LT_UINTMAX_MAX@ | |
1014 | # define SCNxMAX SCNx64 | |
1015 | # else | |
1016 | # define SCNxMAX "lx" | |
55a8c076 | 1017 | # endif |
770d76d7 | 1018 | #endif |
55a8c076 | 1019 | |
770d76d7 PA |
1020 | #if !defined SCNdPTR || @PRI_MACROS_BROKEN@ |
1021 | # undef SCNdPTR | |
1022 | # ifdef INTPTR_MAX | |
1023 | # define SCNdPTR @PRIPTR_PREFIX@ "d" | |
55a8c076 | 1024 | # endif |
770d76d7 PA |
1025 | #endif |
1026 | #if !defined SCNiPTR || @PRI_MACROS_BROKEN@ | |
1027 | # undef SCNiPTR | |
1028 | # ifdef INTPTR_MAX | |
1029 | # define SCNiPTR @PRIPTR_PREFIX@ "i" | |
55a8c076 | 1030 | # endif |
770d76d7 PA |
1031 | #endif |
1032 | #if !defined SCNoPTR || @PRI_MACROS_BROKEN@ | |
1033 | # undef SCNoPTR | |
1034 | # ifdef UINTPTR_MAX | |
1035 | # define SCNoPTR @PRIPTR_PREFIX@ "o" | |
55a8c076 | 1036 | # endif |
770d76d7 PA |
1037 | #endif |
1038 | #if !defined SCNuPTR || @PRI_MACROS_BROKEN@ | |
1039 | # undef SCNuPTR | |
1040 | # ifdef UINTPTR_MAX | |
1041 | # define SCNuPTR @PRIPTR_PREFIX@ "u" | |
55a8c076 | 1042 | # endif |
770d76d7 PA |
1043 | #endif |
1044 | #if !defined SCNxPTR || @PRI_MACROS_BROKEN@ | |
1045 | # undef SCNxPTR | |
1046 | # ifdef UINTPTR_MAX | |
1047 | # define SCNxPTR @PRIPTR_PREFIX@ "x" | |
55a8c076 | 1048 | # endif |
55a8c076 YQ |
1049 | #endif |
1050 | ||
1051 | /* 7.8.2 Functions for greatest-width integer types */ | |
1052 | ||
1053 | #ifdef __cplusplus | |
1054 | extern "C" { | |
1055 | #endif | |
1056 | ||
1057 | #if @GNULIB_IMAXABS@ | |
1058 | # if !@HAVE_DECL_IMAXABS@ | |
1059 | extern intmax_t imaxabs (intmax_t); | |
1060 | # endif | |
1061 | #elif defined GNULIB_POSIXCHECK | |
1062 | # undef imaxabs | |
1063 | # if HAVE_RAW_DECL_IMAXABS | |
1064 | _GL_WARN_ON_USE (imaxabs, "imaxabs is unportable - " | |
1065 | "use gnulib module imaxabs for portability"); | |
1066 | # endif | |
1067 | #endif | |
1068 | ||
1069 | #if @GNULIB_IMAXDIV@ | |
c0c3707f | 1070 | # if !@HAVE_IMAXDIV_T@ |
770d76d7 | 1071 | # if !GNULIB_defined_imaxdiv_t |
55a8c076 | 1072 | typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t; |
770d76d7 PA |
1073 | # define GNULIB_defined_imaxdiv_t 1 |
1074 | # endif | |
c0c3707f CB |
1075 | # endif |
1076 | # if !@HAVE_DECL_IMAXDIV@ | |
55a8c076 YQ |
1077 | extern imaxdiv_t imaxdiv (intmax_t, intmax_t); |
1078 | # endif | |
1079 | #elif defined GNULIB_POSIXCHECK | |
1080 | # undef imaxdiv | |
1081 | # if HAVE_RAW_DECL_IMAXDIV | |
1082 | _GL_WARN_ON_USE (imaxdiv, "imaxdiv is unportable - " | |
1083 | "use gnulib module imaxdiv for portability"); | |
1084 | # endif | |
1085 | #endif | |
1086 | ||
1087 | #if @GNULIB_STRTOIMAX@ | |
770d76d7 PA |
1088 | # if @REPLACE_STRTOIMAX@ |
1089 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | |
1090 | # undef strtoimax | |
1091 | # define strtoimax rpl_strtoimax | |
1092 | # endif | |
1093 | _GL_FUNCDECL_RPL (strtoimax, intmax_t, | |
1094 | (const char *, char **, int) _GL_ARG_NONNULL ((1))); | |
1095 | _GL_CXXALIAS_RPL (strtoimax, intmax_t, (const char *, char **, int)); | |
1096 | # else | |
1097 | # if !@HAVE_DECL_STRTOIMAX@ | |
1098 | # undef strtoimax | |
1099 | _GL_FUNCDECL_SYS (strtoimax, intmax_t, | |
1100 | (const char *, char **, int) _GL_ARG_NONNULL ((1))); | |
1101 | # endif | |
1102 | _GL_CXXALIAS_SYS (strtoimax, intmax_t, (const char *, char **, int)); | |
55a8c076 | 1103 | # endif |
770d76d7 | 1104 | _GL_CXXALIASWARN (strtoimax); |
55a8c076 YQ |
1105 | #elif defined GNULIB_POSIXCHECK |
1106 | # undef strtoimax | |
1107 | # if HAVE_RAW_DECL_STRTOIMAX | |
1108 | _GL_WARN_ON_USE (strtoimax, "strtoimax is unportable - " | |
1109 | "use gnulib module strtoimax for portability"); | |
1110 | # endif | |
1111 | #endif | |
1112 | ||
1113 | #if @GNULIB_STRTOUMAX@ | |
4a626d0a PA |
1114 | # if @REPLACE_STRTOUMAX@ |
1115 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | |
1116 | # undef strtoumax | |
1117 | # define strtoumax rpl_strtoumax | |
1118 | # endif | |
1119 | _GL_FUNCDECL_RPL (strtoumax, uintmax_t, | |
1120 | (const char *, char **, int) _GL_ARG_NONNULL ((1))); | |
1121 | _GL_CXXALIAS_RPL (strtoumax, uintmax_t, (const char *, char **, int)); | |
1122 | # else | |
1123 | # if !@HAVE_DECL_STRTOUMAX@ | |
1124 | # undef strtoumax | |
770d76d7 PA |
1125 | _GL_FUNCDECL_SYS (strtoumax, uintmax_t, |
1126 | (const char *, char **, int) _GL_ARG_NONNULL ((1))); | |
4a626d0a | 1127 | # endif |
770d76d7 | 1128 | _GL_CXXALIAS_SYS (strtoumax, uintmax_t, (const char *, char **, int)); |
4a626d0a | 1129 | # endif |
770d76d7 | 1130 | _GL_CXXALIASWARN (strtoumax); |
55a8c076 YQ |
1131 | #elif defined GNULIB_POSIXCHECK |
1132 | # undef strtoumax | |
1133 | # if HAVE_RAW_DECL_STRTOUMAX | |
1134 | _GL_WARN_ON_USE (strtoumax, "strtoumax is unportable - " | |
1135 | "use gnulib module strtoumax for portability"); | |
1136 | # endif | |
1137 | #endif | |
1138 | ||
1139 | /* Don't bother defining or declaring wcstoimax and wcstoumax, since | |
1140 | wide-character functions like this are hardly ever useful. */ | |
1141 | ||
1142 | #ifdef __cplusplus | |
1143 | } | |
1144 | #endif | |
1145 | ||
1146 | #endif /* !defined INTTYPES_H && !defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H */ |