root/lib/inttypes.in.h

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

/* [<][>][^][v][top][bottom][index][help] */