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