15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// ISO C9x  compliant inttypes.h for Microsoft Visual Studio
25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)//
45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)//  Copyright (c) 2006 Alexander Chemeris
55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)//
65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// Redistribution and use in source and binary forms, with or without
75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// modification, are permitted provided that the following conditions are met:
85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)//
95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)//   1. Redistributions of source code must retain the above copyright notice,
105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)//      this list of conditions and the following disclaimer.
115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)//
125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)//   2. Redistributions in binary form must reproduce the above copyright
135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)//      notice, this list of conditions and the following disclaimer in the
145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)//      documentation and/or other materials provided with the distribution.
155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)//
165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)//   3. The name of the author may be used to endorse or promote products
175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)//      derived from this software without specific prior written permission.
185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)//
195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)//
305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)///////////////////////////////////////////////////////////////////////////////
315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#ifndef INTTYPES_WIN32_H
335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define INTTYPES_WIN32_H
345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
35591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#include "wtf/Platform.h"
365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#if !COMPILER(MSVC)
385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#error "This inttypes.h file should only be compiled with MSVC"
395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#endif
405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#if _MSC_VER > 1000
425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#pragma once
435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#endif
445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#include "stdint.h"
465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// 7.8.1 Macros for format specifiers
485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#if !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS)
505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// The fprintf macros for signed integers are:
525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRId8       "d"
535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIi8       "i"
545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIdLEAST8  "d"
555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIiLEAST8  "i"
565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIdFAST8   "d"
575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIiFAST8   "i"
585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRId16       "hd"
605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIi16       "hi"
615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIdLEAST16  "hd"
625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIiLEAST16  "hi"
635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIdFAST16   "hd"
645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIiFAST16   "hi"
655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRId32       "d"
675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIi32       "i"
685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIdLEAST32  "d"
695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIiLEAST32  "i"
705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIdFAST32   "d"
715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIiFAST32   "i"
725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRId64       "lld"
745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIi64       "lli"
755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIdLEAST64  "lld"
765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIiLEAST64  "lli"
775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIdFAST64   "lld"
785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIiFAST64   "lli"
795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIdMAX     "lld"
815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIiMAX     "lli"
825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIdPTR     "Id"
845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIiPTR     "Ii"
855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// The fprintf macros for unsigned integers are:
875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIo8       "o"
885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIu8       "u"
895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIx8       "x"
905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIX8       "X"
915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIoLEAST8  "o"
925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIuLEAST8  "u"
935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIxLEAST8  "x"
945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIXLEAST8  "X"
955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIoFAST8   "o"
965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIuFAST8   "u"
975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIxFAST8   "x"
985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIXFAST8   "X"
995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIo16       "ho"
1015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIu16       "hu"
1025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIx16       "hx"
1035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIX16       "hX"
1045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIoLEAST16  "ho"
1055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIuLEAST16  "hu"
1065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIxLEAST16  "hx"
1075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIXLEAST16  "hX"
1085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIoFAST16   "ho"
1095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIuFAST16   "hu"
1105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIxFAST16   "hx"
1115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIXFAST16   "hX"
1125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIo32       "o"
1145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIu32       "u"
1155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIx32       "x"
1165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIX32       "X"
1175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIoLEAST32  "o"
1185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIuLEAST32  "u"
1195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIxLEAST32  "x"
1205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIXLEAST32  "X"
1215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIoFAST32   "o"
1225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIuFAST32   "u"
1235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIxFAST32   "x"
1245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIXFAST32   "X"
1255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIo64       "llo"
1275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIu64       "llu"
1285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIx64       "llx"
1295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIX64       "llX"
1305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIoLEAST64  "llo"
1315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIuLEAST64  "llu"
1325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIxLEAST64  "llx"
1335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIXLEAST64  "llX"
1345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIoFAST64   "llo"
1355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIuFAST64   "llu"
1365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIxFAST64   "llx"
1375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIXFAST64   "llX"
1385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIoMAX     "llo"
1405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIuMAX     "llu"
1415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIxMAX     "llx"
1425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIXMAX     "llX"
1435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIoPTR     "Io"
1455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIuPTR     "Iu"
1465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIxPTR     "Ix"
1475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define PRIXPTR     "IX"
1485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// The fscanf macros for signed integers are:
1505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNd8       "d"
1515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNi8       "i"
1525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNdLEAST8  "d"
1535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNiLEAST8  "i"
1545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNdFAST8   "d"
1555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNiFAST8   "i"
1565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNd16       "hd"
1585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNi16       "hi"
1595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNdLEAST16  "hd"
1605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNiLEAST16  "hi"
1615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNdFAST16   "hd"
1625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNiFAST16   "hi"
1635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNd32       "ld"
1655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNi32       "li"
1665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNdLEAST32  "ld"
1675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNiLEAST32  "li"
1685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNdFAST32   "ld"
1695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNiFAST32   "li"
1705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNd64       "lld"
1725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNi64       "lli"
1735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNdLEAST64  "lld"
1745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNiLEAST64  "lli"
1755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNdFAST64   "lld"
1765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNiFAST64   "lli"
1775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNdMAX     "lld"
1795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNiMAX     "lli"
1805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#ifdef _WIN64
1825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#  define SCNdPTR     "lld"
1835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#  define SCNiPTR     "lli"
1845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#else
1855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#  define SCNdPTR     "ld"
1865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#  define SCNiPTR     "li"
1875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#endif
1885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// The fscanf macros for unsigned integers are:
1905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNo8       "o"
1915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNu8       "u"
1925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNx8       "x"
1935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNX8       "X"
1945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNoLEAST8  "o"
1955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNuLEAST8  "u"
1965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNxLEAST8  "x"
1975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNXLEAST8  "X"
1985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNoFAST8   "o"
1995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNuFAST8   "u"
2005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNxFAST8   "x"
2015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNXFAST8   "X"
2025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
2035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNo16       "ho"
2045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNu16       "hu"
2055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNx16       "hx"
2065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNX16       "hX"
2075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNoLEAST16  "ho"
2085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNuLEAST16  "hu"
2095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNxLEAST16  "hx"
2105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNXLEAST16  "hX"
2115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNoFAST16   "ho"
2125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNuFAST16   "hu"
2135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNxFAST16   "hx"
2145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNXFAST16   "hX"
2155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
2165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNo32       "lo"
2175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNu32       "lu"
2185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNx32       "lx"
2195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNX32       "lX"
2205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNoLEAST32  "lo"
2215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNuLEAST32  "lu"
2225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNxLEAST32  "lx"
2235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNXLEAST32  "lX"
2245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNoFAST32   "lo"
2255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNuFAST32   "lu"
2265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNxFAST32   "lx"
2275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNXFAST32   "lX"
2285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
2295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNo64       "llo"
2305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNu64       "llu"
2315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNx64       "llx"
2325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNX64       "llX"
2335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNoLEAST64  "llo"
2345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNuLEAST64  "llu"
2355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNxLEAST64  "llx"
2365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNXLEAST64  "llX"
2375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNoFAST64   "llo"
2385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNuFAST64   "llu"
2395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNxFAST64   "llx"
2405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNXFAST64   "llX"
2415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
2425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNoMAX     "llo"
2435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNuMAX     "llu"
2445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNxMAX     "llx"
2455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define SCNXMAX     "llX"
2465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
2475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#ifdef _WIN64
2485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#  define SCNoPTR     "llo"
2495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#  define SCNuPTR     "llu"
2505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#  define SCNxPTR     "llx"
2515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#  define SCNXPTR     "llX"
2525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#else
2535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#  define SCNoPTR     "lo"
2545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#  define SCNuPTR     "lu"
2555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#  define SCNxPTR     "lx"
2565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#  define SCNXPTR     "lX"
2575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#endif
2585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
2595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#endif
2605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
2615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#endif
262