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