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