aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorPaul Eggert2020-07-30 13:58:58 -0700
committerPaul Eggert2020-07-30 14:01:49 -0700
commit5d89a9c2846d32b4726faaf5c8652f3f23dc7d73 (patch)
tree9a27cdda7b90665cb8e953885ccfa9f4b6f7456a /lib
parent88b4516cf8c3ff39803430452b8adbb86a73642a (diff)
downloademacs-5d89a9c2846d32b4726faaf5c8652f3f23dc7d73.tar.gz
emacs-5d89a9c2846d32b4726faaf5c8652f3f23dc7d73.zip
Update from Gnulib
This incorporates: 2020-07-30 work around some Oracle Studio attribute bugs 2020-07-29 fsusage, regex, stat-size: remove Cray support 2020-07-26 inttypes: remove support for AIX 4 2020-07-26 gettimeofday: remove workaround for Mac OS X 10.0 2020-07-26 don't require gl_LOCALTIME_BUFFER_DEFAULTS 2020-07-26 alloca: remove Cray-2 and Cray Y-MP support 2020-07-26 libgmp: remove dependency on havelib 2020-07-26 libgmp: remove HAVE_GMP, LIB_GMP 2020-07-25 multiarch: prepare for x86_64+arm64 universal in macOS 11 2020-07-25 sigprocmask: small autoconf macro improvement 2020-07-25 small autoconf macro improvements 2020-07-24 timespec: remove dependence on ‘verify’ 2020-07-24 optimize a few more three-valued comparisons 2020-07-24 fix _GL_CMP parenthesization typo 2020-07-23 optimize three-valued comparison between integers 2020-07-24 doc: update for Mac OS X 10.13 2020-07-23 fchmodat, lchmod: use /proc on Cygwin 2020-07-21 inttypes: fix PRI*PTR and SCN*PTR on 64-bit native Windows 2020-07-12 libgmp: avoid warning when --without-libgmp is used 2020-07-12 libgmp: link to the correct shared library * lib/mini-gmp-gnulib.c: Ignore -Wsuggest-attribute=malloc only for * build-aux/config.guess, build-aux/config.sub: * build-aux/install-sh, doc/misc/texinfo.tex, lib/c-strcasecmp.c: * lib/c-strncasecmp.c, lib/fchmodat.c, lib/fsusage.c: * lib/gettimeofday.c, lib/inttypes.in.h, lib/lchmod.c: * lib/mini-gmp-gnulib.c, lib/nstrftime.c, lib/regex.h, lib/timespec.h: * m4/alloca.m4, m4/getgroups.m4, m4/gettimeofday.m4: * m4/gnulib-common.m4, m4/inttypes.m4, m4/libgmp.m4, m4/mktime.m4: * m4/multiarch.m4: Copy from Gnulib. * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate. * src/Makefile.in, test/Makefile.in (LIBGMP): Rename from LIB_GMP for compatibility with Gnulib. All uses changed.
Diffstat (limited to 'lib')
-rw-r--r--lib/c-strcasecmp.c2
-rw-r--r--lib/c-strncasecmp.c2
-rw-r--r--lib/fchmodat.c2
-rw-r--r--lib/fsusage.c4
-rw-r--r--lib/gettimeofday.c11
-rw-r--r--lib/gnulib.mk.in19
-rw-r--r--lib/inttypes.in.h462
-rw-r--r--lib/lchmod.c2
-rw-r--r--lib/mini-gmp-gnulib.c6
-rw-r--r--lib/nstrftime.c9
-rw-r--r--lib/regex.h2
-rw-r--r--lib/timespec.h41
12 files changed, 168 insertions, 394 deletions
diff --git a/lib/c-strcasecmp.c b/lib/c-strcasecmp.c
index 951220f3e29..f1a4b98fa55 100644
--- a/lib/c-strcasecmp.c
+++ b/lib/c-strcasecmp.c
@@ -52,5 +52,5 @@ c_strcasecmp (const char *s1, const char *s2)
52 /* On machines where 'char' and 'int' are types of the same size, the 52 /* On machines where 'char' and 'int' are types of the same size, the
53 difference of two 'unsigned char' values - including the sign bit - 53 difference of two 'unsigned char' values - including the sign bit -
54 doesn't fit in an 'int'. */ 54 doesn't fit in an 'int'. */
55 return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0); 55 return _GL_CMP (c1, c2);
56} 56}
diff --git a/lib/c-strncasecmp.c b/lib/c-strncasecmp.c
index 9ad49191b7f..1d6e1411a67 100644
--- a/lib/c-strncasecmp.c
+++ b/lib/c-strncasecmp.c
@@ -52,5 +52,5 @@ c_strncasecmp (const char *s1, const char *s2, size_t n)
52 /* On machines where 'char' and 'int' are types of the same size, the 52 /* On machines where 'char' and 'int' are types of the same size, the
53 difference of two 'unsigned char' values - including the sign bit - 53 difference of two 'unsigned char' values - including the sign bit -
54 doesn't fit in an 'int'. */ 54 doesn't fit in an 'int'. */
55 return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0); 55 return _GL_CMP (c1, c2);
56} 56}
diff --git a/lib/fchmodat.c b/lib/fchmodat.c
index 8950168608f..eee0a1c56e4 100644
--- a/lib/fchmodat.c
+++ b/lib/fchmodat.c
@@ -98,7 +98,7 @@ fchmodat (int dir, char const *file, mode_t mode, int flags)
98 return -1; 98 return -1;
99 } 99 }
100 100
101# if defined __linux__ || defined __ANDROID__ 101# if defined __linux__ || defined __ANDROID__ || defined __CYGWIN__
102 static char const fmt[] = "/proc/self/fd/%d"; 102 static char const fmt[] = "/proc/self/fd/%d";
103 char buf[sizeof fmt - sizeof "%d" + INT_BUFSIZE_BOUND (int)]; 103 char buf[sizeof fmt - sizeof "%d" + INT_BUFSIZE_BOUND (int)];
104 sprintf (buf, fmt, fd); 104 sprintf (buf, fmt, fd);
diff --git a/lib/fsusage.c b/lib/fsusage.c
index 81960152d41..85bfe0e2837 100644
--- a/lib/fsusage.c
+++ b/lib/fsusage.c
@@ -211,11 +211,7 @@ get_fs_usage (char const *file, char const *disk, struct fs_usage *fsp)
211 /* Empirically, the block counts on most SVR3 and SVR3-derived 211 /* Empirically, the block counts on most SVR3 and SVR3-derived
212 systems seem to always be in terms of 512-byte blocks, 212 systems seem to always be in terms of 512-byte blocks,
213 no matter what value f_bsize has. */ 213 no matter what value f_bsize has. */
214# if defined _CRAY
215 fsp->fsu_blocksize = PROPAGATE_ALL_ONES (fsd.f_bsize);
216# else
217 fsp->fsu_blocksize = 512; 214 fsp->fsu_blocksize = 512;
218# endif
219 215
220#endif 216#endif
221 217
diff --git a/lib/gettimeofday.c b/lib/gettimeofday.c
index 057cebdb163..5301e7c144a 100644
--- a/lib/gettimeofday.c
+++ b/lib/gettimeofday.c
@@ -29,8 +29,6 @@
29# include <windows.h> 29# include <windows.h>
30#endif 30#endif
31 31
32#include "localtime-buffer.h"
33
34#ifdef WINDOWS_NATIVE 32#ifdef WINDOWS_NATIVE
35 33
36/* Don't assume that UNICODE is not defined. */ 34/* Don't assume that UNICODE is not defined. */
@@ -123,11 +121,6 @@ gettimeofday (struct timeval *restrict tv, void *restrict tz)
123#else 121#else
124 122
125# if HAVE_GETTIMEOFDAY 123# if HAVE_GETTIMEOFDAY
126# if GETTIMEOFDAY_CLOBBERS_LOCALTIME
127 /* Save and restore the contents of the buffer used for localtime's
128 result around the call to gettimeofday. */
129 struct tm save = *localtime_buffer_addr;
130# endif
131 124
132# if defined timeval /* 'struct timeval' overridden by gnulib? */ 125# if defined timeval /* 'struct timeval' overridden by gnulib? */
133# undef timeval 126# undef timeval
@@ -142,10 +135,6 @@ gettimeofday (struct timeval *restrict tv, void *restrict tz)
142 int result = gettimeofday (tv, (struct timezone *) tz); 135 int result = gettimeofday (tv, (struct timezone *) tz);
143# endif 136# endif
144 137
145# if GETTIMEOFDAY_CLOBBERS_LOCALTIME
146 *localtime_buffer_addr = save;
147# endif
148
149 return result; 138 return result;
150 139
151# else 140# else
diff --git a/lib/gnulib.mk.in b/lib/gnulib.mk.in
index 68cae8faf74..4dc180d2e33 100644
--- a/lib/gnulib.mk.in
+++ b/lib/gnulib.mk.in
@@ -587,6 +587,7 @@ HAVE_INITSTATE = @HAVE_INITSTATE@
587HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ 587HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
588HAVE_LCHMOD = @HAVE_LCHMOD@ 588HAVE_LCHMOD = @HAVE_LCHMOD@
589HAVE_LCHOWN = @HAVE_LCHOWN@ 589HAVE_LCHOWN = @HAVE_LCHOWN@
590HAVE_LIBGMP = @HAVE_LIBGMP@
590HAVE_LINK = @HAVE_LINK@ 591HAVE_LINK = @HAVE_LINK@
591HAVE_LINKAT = @HAVE_LINKAT@ 592HAVE_LINKAT = @HAVE_LINKAT@
592HAVE_LSTAT = @HAVE_LSTAT@ 593HAVE_LSTAT = @HAVE_LSTAT@
@@ -721,6 +722,7 @@ LD_SWITCH_SYSTEM_TEMACS = @LD_SWITCH_SYSTEM_TEMACS@
721LD_SWITCH_X_SITE = @LD_SWITCH_X_SITE@ 722LD_SWITCH_X_SITE = @LD_SWITCH_X_SITE@
722LD_SWITCH_X_SITE_RPATH = @LD_SWITCH_X_SITE_RPATH@ 723LD_SWITCH_X_SITE_RPATH = @LD_SWITCH_X_SITE_RPATH@
723LIBGIF = @LIBGIF@ 724LIBGIF = @LIBGIF@
725LIBGMP = @LIBGMP@
724LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ 726LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@
725LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ 727LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@
726LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ 728LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@
@@ -761,7 +763,6 @@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
761LIB_EACCESS = @LIB_EACCESS@ 763LIB_EACCESS = @LIB_EACCESS@
762LIB_EXECINFO = @LIB_EXECINFO@ 764LIB_EXECINFO = @LIB_EXECINFO@
763LIB_GETRANDOM = @LIB_GETRANDOM@ 765LIB_GETRANDOM = @LIB_GETRANDOM@
764LIB_GMP = @LIB_GMP@
765LIB_MATH = @LIB_MATH@ 766LIB_MATH = @LIB_MATH@
766LIB_PTHREAD = @LIB_PTHREAD@ 767LIB_PTHREAD = @LIB_PTHREAD@
767LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@ 768LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@
@@ -769,6 +770,7 @@ LIB_TIMER_TIME = @LIB_TIMER_TIME@
769LIB_WSOCK32 = @LIB_WSOCK32@ 770LIB_WSOCK32 = @LIB_WSOCK32@
770LIMITS_H = @LIMITS_H@ 771LIMITS_H = @LIMITS_H@
771LN_S_FILEONLY = @LN_S_FILEONLY@ 772LN_S_FILEONLY = @LN_S_FILEONLY@
773LTLIBGMP = @LTLIBGMP@
772LTLIBINTL = @LTLIBINTL@ 774LTLIBINTL = @LTLIBINTL@
773LTLIBOBJS = @LTLIBOBJS@ 775LTLIBOBJS = @LTLIBOBJS@
774M17N_FLT_CFLAGS = @M17N_FLT_CFLAGS@ 776M17N_FLT_CFLAGS = @M17N_FLT_CFLAGS@
@@ -848,7 +850,6 @@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
848PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ 850PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
849PRE_ALLOC_OBJ = @PRE_ALLOC_OBJ@ 851PRE_ALLOC_OBJ = @PRE_ALLOC_OBJ@
850PRIPTR_PREFIX = @PRIPTR_PREFIX@ 852PRIPTR_PREFIX = @PRIPTR_PREFIX@
851PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
852PROFILING_CFLAGS = @PROFILING_CFLAGS@ 853PROFILING_CFLAGS = @PROFILING_CFLAGS@
853PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ 854PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
854PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ 855PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
@@ -1963,7 +1964,6 @@ inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_U
1963 -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ 1964 -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
1964 -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ 1965 -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
1965 -e 's|@''NEXT_INTTYPES_H''@|$(NEXT_INTTYPES_H)|g' \ 1966 -e 's|@''NEXT_INTTYPES_H''@|$(NEXT_INTTYPES_H)|g' \
1966 -e 's/@''PRI_MACROS_BROKEN''@/$(PRI_MACROS_BROKEN)/g' \
1967 -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ 1967 -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \
1968 -e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \ 1968 -e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \
1969 -e 's/@''GNULIB_IMAXABS''@/$(GNULIB_IMAXABS)/g' \ 1969 -e 's/@''GNULIB_IMAXABS''@/$(GNULIB_IMAXABS)/g' \
@@ -2069,19 +2069,6 @@ EXTRA_DIST += limits.in.h
2069endif 2069endif
2070## end gnulib module limits-h 2070## end gnulib module limits-h
2071 2071
2072## begin gnulib module localtime-buffer
2073ifeq (,$(OMIT_GNULIB_MODULE_localtime-buffer))
2074
2075ifneq (,$(gl_GNULIB_ENABLED_2049e887c7e5308faad27b3f894bb8c9))
2076
2077endif
2078EXTRA_DIST += localtime-buffer.c localtime-buffer.h
2079
2080EXTRA_libgnu_a_SOURCES += localtime-buffer.c
2081
2082endif
2083## end gnulib module localtime-buffer
2084
2085## begin gnulib module lstat 2072## begin gnulib module lstat
2086ifeq (,$(OMIT_GNULIB_MODULE_lstat)) 2073ifeq (,$(OMIT_GNULIB_MODULE_lstat))
2087 2074
diff --git a/lib/inttypes.in.h b/lib/inttypes.in.h
index 9f04a6ced4a..596a050458b 100644
--- a/lib/inttypes.in.h
+++ b/lib/inttypes.in.h
@@ -78,110 +78,92 @@
78# define _LONG_LONG_FORMAT_PREFIX "ll" 78# define _LONG_LONG_FORMAT_PREFIX "ll"
79#endif 79#endif
80 80
81#if !defined PRId8 || @PRI_MACROS_BROKEN@ 81#if !defined PRId8
82# undef PRId8
83# ifdef INT8_MAX 82# ifdef INT8_MAX
84# define PRId8 "d" 83# define PRId8 "d"
85# endif 84# endif
86#endif 85#endif
87#if !defined PRIi8 || @PRI_MACROS_BROKEN@ 86#if !defined PRIi8
88# undef PRIi8
89# ifdef INT8_MAX 87# ifdef INT8_MAX
90# define PRIi8 "i" 88# define PRIi8 "i"
91# endif 89# endif
92#endif 90#endif
93#if !defined PRIo8 || @PRI_MACROS_BROKEN@ 91#if !defined PRIo8
94# undef PRIo8
95# ifdef UINT8_MAX 92# ifdef UINT8_MAX
96# define PRIo8 "o" 93# define PRIo8 "o"
97# endif 94# endif
98#endif 95#endif
99#if !defined PRIu8 || @PRI_MACROS_BROKEN@ 96#if !defined PRIu8
100# undef PRIu8
101# ifdef UINT8_MAX 97# ifdef UINT8_MAX
102# define PRIu8 "u" 98# define PRIu8 "u"
103# endif 99# endif
104#endif 100#endif
105#if !defined PRIx8 || @PRI_MACROS_BROKEN@ 101#if !defined PRIx8
106# undef PRIx8
107# ifdef UINT8_MAX 102# ifdef UINT8_MAX
108# define PRIx8 "x" 103# define PRIx8 "x"
109# endif 104# endif
110#endif 105#endif
111#if !defined PRIX8 || @PRI_MACROS_BROKEN@ 106#if !defined PRIX8
112# undef PRIX8
113# ifdef UINT8_MAX 107# ifdef UINT8_MAX
114# define PRIX8 "X" 108# define PRIX8 "X"
115# endif 109# endif
116#endif 110#endif
117#if !defined PRId16 || @PRI_MACROS_BROKEN@ 111#if !defined PRId16
118# undef PRId16
119# ifdef INT16_MAX 112# ifdef INT16_MAX
120# define PRId16 "d" 113# define PRId16 "d"
121# endif 114# endif
122#endif 115#endif
123#if !defined PRIi16 || @PRI_MACROS_BROKEN@ 116#if !defined PRIi16
124# undef PRIi16
125# ifdef INT16_MAX 117# ifdef INT16_MAX
126# define PRIi16 "i" 118# define PRIi16 "i"
127# endif 119# endif
128#endif 120#endif
129#if !defined PRIo16 || @PRI_MACROS_BROKEN@ 121#if !defined PRIo16
130# undef PRIo16
131# ifdef UINT16_MAX 122# ifdef UINT16_MAX
132# define PRIo16 "o" 123# define PRIo16 "o"
133# endif 124# endif
134#endif 125#endif
135#if !defined PRIu16 || @PRI_MACROS_BROKEN@ 126#if !defined PRIu16
136# undef PRIu16
137# ifdef UINT16_MAX 127# ifdef UINT16_MAX
138# define PRIu16 "u" 128# define PRIu16 "u"
139# endif 129# endif
140#endif 130#endif
141#if !defined PRIx16 || @PRI_MACROS_BROKEN@ 131#if !defined PRIx16
142# undef PRIx16
143# ifdef UINT16_MAX 132# ifdef UINT16_MAX
144# define PRIx16 "x" 133# define PRIx16 "x"
145# endif 134# endif
146#endif 135#endif
147#if !defined PRIX16 || @PRI_MACROS_BROKEN@ 136#if !defined PRIX16
148# undef PRIX16
149# ifdef UINT16_MAX 137# ifdef UINT16_MAX
150# define PRIX16 "X" 138# define PRIX16 "X"
151# endif 139# endif
152#endif 140#endif
153#if !defined PRId32 || @PRI_MACROS_BROKEN@ 141#if !defined PRId32
154# undef PRId32
155# ifdef INT32_MAX 142# ifdef INT32_MAX
156# define PRId32 "d" 143# define PRId32 "d"
157# endif 144# endif
158#endif 145#endif
159#if !defined PRIi32 || @PRI_MACROS_BROKEN@ 146#if !defined PRIi32
160# undef PRIi32
161# ifdef INT32_MAX 147# ifdef INT32_MAX
162# define PRIi32 "i" 148# define PRIi32 "i"
163# endif 149# endif
164#endif 150#endif
165#if !defined PRIo32 || @PRI_MACROS_BROKEN@ 151#if !defined PRIo32
166# undef PRIo32
167# ifdef UINT32_MAX 152# ifdef UINT32_MAX
168# define PRIo32 "o" 153# define PRIo32 "o"
169# endif 154# endif
170#endif 155#endif
171#if !defined PRIu32 || @PRI_MACROS_BROKEN@ 156#if !defined PRIu32
172# undef PRIu32
173# ifdef UINT32_MAX 157# ifdef UINT32_MAX
174# define PRIu32 "u" 158# define PRIu32 "u"
175# endif 159# endif
176#endif 160#endif
177#if !defined PRIx32 || @PRI_MACROS_BROKEN@ 161#if !defined PRIx32
178# undef PRIx32
179# ifdef UINT32_MAX 162# ifdef UINT32_MAX
180# define PRIx32 "x" 163# define PRIx32 "x"
181# endif 164# endif
182#endif 165#endif
183#if !defined PRIX32 || @PRI_MACROS_BROKEN@ 166#if !defined PRIX32
184# undef PRIX32
185# ifdef UINT32_MAX 167# ifdef UINT32_MAX
186# define PRIX32 "X" 168# define PRIX32 "X"
187# endif 169# endif
@@ -194,12 +176,10 @@
194# elif LONG_MAX >> 30 == 1 176# elif LONG_MAX >> 30 == 1
195# define _PRI64_PREFIX _LONG_LONG_FORMAT_PREFIX 177# define _PRI64_PREFIX _LONG_LONG_FORMAT_PREFIX
196# endif 178# endif
197# if !defined PRId64 || @PRI_MACROS_BROKEN@ 179# if !defined PRId64
198# undef PRId64
199# define PRId64 _PRI64_PREFIX "d" 180# define PRId64 _PRI64_PREFIX "d"
200# endif 181# endif
201# if !defined PRIi64 || @PRI_MACROS_BROKEN@ 182# if !defined PRIi64
202# undef PRIi64
203# define PRIi64 _PRI64_PREFIX "i" 183# define PRIi64 _PRI64_PREFIX "i"
204# endif 184# endif
205#endif 185#endif
@@ -211,263 +191,217 @@
211# elif ULONG_MAX >> 31 == 1 191# elif ULONG_MAX >> 31 == 1
212# define _PRIu64_PREFIX _LONG_LONG_FORMAT_PREFIX 192# define _PRIu64_PREFIX _LONG_LONG_FORMAT_PREFIX
213# endif 193# endif
214# if !defined PRIo64 || @PRI_MACROS_BROKEN@ 194# if !defined PRIo64
215# undef PRIo64
216# define PRIo64 _PRIu64_PREFIX "o" 195# define PRIo64 _PRIu64_PREFIX "o"
217# endif 196# endif
218# if !defined PRIu64 || @PRI_MACROS_BROKEN@ 197# if !defined PRIu64
219# undef PRIu64
220# define PRIu64 _PRIu64_PREFIX "u" 198# define PRIu64 _PRIu64_PREFIX "u"
221# endif 199# endif
222# if !defined PRIx64 || @PRI_MACROS_BROKEN@ 200# if !defined PRIx64
223# undef PRIx64
224# define PRIx64 _PRIu64_PREFIX "x" 201# define PRIx64 _PRIu64_PREFIX "x"
225# endif 202# endif
226# if !defined PRIX64 || @PRI_MACROS_BROKEN@ 203# if !defined PRIX64
227# undef PRIX64
228# define PRIX64 _PRIu64_PREFIX "X" 204# define PRIX64 _PRIu64_PREFIX "X"
229# endif 205# endif
230#endif 206#endif
231 207
232#if !defined PRIdLEAST8 || @PRI_MACROS_BROKEN@ 208#if !defined PRIdLEAST8
233# undef PRIdLEAST8
234# define PRIdLEAST8 "d" 209# define PRIdLEAST8 "d"
235#endif 210#endif
236#if !defined PRIiLEAST8 || @PRI_MACROS_BROKEN@ 211#if !defined PRIiLEAST8
237# undef PRIiLEAST8
238# define PRIiLEAST8 "i" 212# define PRIiLEAST8 "i"
239#endif 213#endif
240#if !defined PRIoLEAST8 || @PRI_MACROS_BROKEN@ 214#if !defined PRIoLEAST8
241# undef PRIoLEAST8
242# define PRIoLEAST8 "o" 215# define PRIoLEAST8 "o"
243#endif 216#endif
244#if !defined PRIuLEAST8 || @PRI_MACROS_BROKEN@ 217#if !defined PRIuLEAST8
245# undef PRIuLEAST8
246# define PRIuLEAST8 "u" 218# define PRIuLEAST8 "u"
247#endif 219#endif
248#if !defined PRIxLEAST8 || @PRI_MACROS_BROKEN@ 220#if !defined PRIxLEAST8
249# undef PRIxLEAST8
250# define PRIxLEAST8 "x" 221# define PRIxLEAST8 "x"
251#endif 222#endif
252#if !defined PRIXLEAST8 || @PRI_MACROS_BROKEN@ 223#if !defined PRIXLEAST8
253# undef PRIXLEAST8
254# define PRIXLEAST8 "X" 224# define PRIXLEAST8 "X"
255#endif 225#endif
256#if !defined PRIdLEAST16 || @PRI_MACROS_BROKEN@ 226#if !defined PRIdLEAST16
257# undef PRIdLEAST16
258# define PRIdLEAST16 "d" 227# define PRIdLEAST16 "d"
259#endif 228#endif
260#if !defined PRIiLEAST16 || @PRI_MACROS_BROKEN@ 229#if !defined PRIiLEAST16
261# undef PRIiLEAST16
262# define PRIiLEAST16 "i" 230# define PRIiLEAST16 "i"
263#endif 231#endif
264#if !defined PRIoLEAST16 || @PRI_MACROS_BROKEN@ 232#if !defined PRIoLEAST16
265# undef PRIoLEAST16
266# define PRIoLEAST16 "o" 233# define PRIoLEAST16 "o"
267#endif 234#endif
268#if !defined PRIuLEAST16 || @PRI_MACROS_BROKEN@ 235#if !defined PRIuLEAST16
269# undef PRIuLEAST16
270# define PRIuLEAST16 "u" 236# define PRIuLEAST16 "u"
271#endif 237#endif
272#if !defined PRIxLEAST16 || @PRI_MACROS_BROKEN@ 238#if !defined PRIxLEAST16
273# undef PRIxLEAST16
274# define PRIxLEAST16 "x" 239# define PRIxLEAST16 "x"
275#endif 240#endif
276#if !defined PRIXLEAST16 || @PRI_MACROS_BROKEN@ 241#if !defined PRIXLEAST16
277# undef PRIXLEAST16
278# define PRIXLEAST16 "X" 242# define PRIXLEAST16 "X"
279#endif 243#endif
280#if !defined PRIdLEAST32 || @PRI_MACROS_BROKEN@ 244#if !defined PRIdLEAST32
281# undef PRIdLEAST32
282# define PRIdLEAST32 "d" 245# define PRIdLEAST32 "d"
283#endif 246#endif
284#if !defined PRIiLEAST32 || @PRI_MACROS_BROKEN@ 247#if !defined PRIiLEAST32
285# undef PRIiLEAST32
286# define PRIiLEAST32 "i" 248# define PRIiLEAST32 "i"
287#endif 249#endif
288#if !defined PRIoLEAST32 || @PRI_MACROS_BROKEN@ 250#if !defined PRIoLEAST32
289# undef PRIoLEAST32
290# define PRIoLEAST32 "o" 251# define PRIoLEAST32 "o"
291#endif 252#endif
292#if !defined PRIuLEAST32 || @PRI_MACROS_BROKEN@ 253#if !defined PRIuLEAST32
293# undef PRIuLEAST32
294# define PRIuLEAST32 "u" 254# define PRIuLEAST32 "u"
295#endif 255#endif
296#if !defined PRIxLEAST32 || @PRI_MACROS_BROKEN@ 256#if !defined PRIxLEAST32
297# undef PRIxLEAST32
298# define PRIxLEAST32 "x" 257# define PRIxLEAST32 "x"
299#endif 258#endif
300#if !defined PRIXLEAST32 || @PRI_MACROS_BROKEN@ 259#if !defined PRIXLEAST32
301# undef PRIXLEAST32
302# define PRIXLEAST32 "X" 260# define PRIXLEAST32 "X"
303#endif 261#endif
304#ifdef INT64_MAX 262#ifdef INT64_MAX
305# if !defined PRIdLEAST64 || @PRI_MACROS_BROKEN@ 263# if !defined PRIdLEAST64
306# undef PRIdLEAST64
307# define PRIdLEAST64 PRId64 264# define PRIdLEAST64 PRId64
308# endif 265# endif
309# if !defined PRIiLEAST64 || @PRI_MACROS_BROKEN@ 266# if !defined PRIiLEAST64
310# undef PRIiLEAST64
311# define PRIiLEAST64 PRIi64 267# define PRIiLEAST64 PRIi64
312# endif 268# endif
313#endif 269#endif
314#ifdef UINT64_MAX 270#ifdef UINT64_MAX
315# if !defined PRIoLEAST64 || @PRI_MACROS_BROKEN@ 271# if !defined PRIoLEAST64
316# undef PRIoLEAST64
317# define PRIoLEAST64 PRIo64 272# define PRIoLEAST64 PRIo64
318# endif 273# endif
319# if !defined PRIuLEAST64 || @PRI_MACROS_BROKEN@ 274# if !defined PRIuLEAST64
320# undef PRIuLEAST64
321# define PRIuLEAST64 PRIu64 275# define PRIuLEAST64 PRIu64
322# endif 276# endif
323# if !defined PRIxLEAST64 || @PRI_MACROS_BROKEN@ 277# if !defined PRIxLEAST64
324# undef PRIxLEAST64
325# define PRIxLEAST64 PRIx64 278# define PRIxLEAST64 PRIx64
326# endif 279# endif
327# if !defined PRIXLEAST64 || @PRI_MACROS_BROKEN@ 280# if !defined PRIXLEAST64
328# undef PRIXLEAST64
329# define PRIXLEAST64 PRIX64 281# define PRIXLEAST64 PRIX64
330# endif 282# endif
331#endif 283#endif
332 284
333#if !defined PRIdFAST8 || @PRI_MACROS_BROKEN@ 285#if !defined PRIdFAST8
334# undef PRIdFAST8
335# if INT_FAST8_MAX > INT32_MAX 286# if INT_FAST8_MAX > INT32_MAX
336# define PRIdFAST8 PRId64 287# define PRIdFAST8 PRId64
337# else 288# else
338# define PRIdFAST8 "d" 289# define PRIdFAST8 "d"
339# endif 290# endif
340#endif 291#endif
341#if !defined PRIiFAST8 || @PRI_MACROS_BROKEN@ 292#if !defined PRIiFAST8
342# undef PRIiFAST8
343# if INT_FAST8_MAX > INT32_MAX 293# if INT_FAST8_MAX > INT32_MAX
344# define PRIiFAST8 PRIi64 294# define PRIiFAST8 PRIi64
345# else 295# else
346# define PRIiFAST8 "i" 296# define PRIiFAST8 "i"
347# endif 297# endif
348#endif 298#endif
349#if !defined PRIoFAST8 || @PRI_MACROS_BROKEN@ 299#if !defined PRIoFAST8
350# undef PRIoFAST8
351# if UINT_FAST8_MAX > UINT32_MAX 300# if UINT_FAST8_MAX > UINT32_MAX
352# define PRIoFAST8 PRIo64 301# define PRIoFAST8 PRIo64
353# else 302# else
354# define PRIoFAST8 "o" 303# define PRIoFAST8 "o"
355# endif 304# endif
356#endif 305#endif
357#if !defined PRIuFAST8 || @PRI_MACROS_BROKEN@ 306#if !defined PRIuFAST8
358# undef PRIuFAST8
359# if UINT_FAST8_MAX > UINT32_MAX 307# if UINT_FAST8_MAX > UINT32_MAX
360# define PRIuFAST8 PRIu64 308# define PRIuFAST8 PRIu64
361# else 309# else
362# define PRIuFAST8 "u" 310# define PRIuFAST8 "u"
363# endif 311# endif
364#endif 312#endif
365#if !defined PRIxFAST8 || @PRI_MACROS_BROKEN@ 313#if !defined PRIxFAST8
366# undef PRIxFAST8
367# if UINT_FAST8_MAX > UINT32_MAX 314# if UINT_FAST8_MAX > UINT32_MAX
368# define PRIxFAST8 PRIx64 315# define PRIxFAST8 PRIx64
369# else 316# else
370# define PRIxFAST8 "x" 317# define PRIxFAST8 "x"
371# endif 318# endif
372#endif 319#endif
373#if !defined PRIXFAST8 || @PRI_MACROS_BROKEN@ 320#if !defined PRIXFAST8
374# undef PRIXFAST8
375# if UINT_FAST8_MAX > UINT32_MAX 321# if UINT_FAST8_MAX > UINT32_MAX
376# define PRIXFAST8 PRIX64 322# define PRIXFAST8 PRIX64
377# else 323# else
378# define PRIXFAST8 "X" 324# define PRIXFAST8 "X"
379# endif 325# endif
380#endif 326#endif
381#if !defined PRIdFAST16 || @PRI_MACROS_BROKEN@ 327#if !defined PRIdFAST16
382# undef PRIdFAST16
383# if INT_FAST16_MAX > INT32_MAX 328# if INT_FAST16_MAX > INT32_MAX
384# define PRIdFAST16 PRId64 329# define PRIdFAST16 PRId64
385# else 330# else
386# define PRIdFAST16 "d" 331# define PRIdFAST16 "d"
387# endif 332# endif
388#endif 333#endif
389#if !defined PRIiFAST16 || @PRI_MACROS_BROKEN@ 334#if !defined PRIiFAST16
390# undef PRIiFAST16
391# if INT_FAST16_MAX > INT32_MAX 335# if INT_FAST16_MAX > INT32_MAX
392# define PRIiFAST16 PRIi64 336# define PRIiFAST16 PRIi64
393# else 337# else
394# define PRIiFAST16 "i" 338# define PRIiFAST16 "i"
395# endif 339# endif
396#endif 340#endif
397#if !defined PRIoFAST16 || @PRI_MACROS_BROKEN@ 341#if !defined PRIoFAST16
398# undef PRIoFAST16
399# if UINT_FAST16_MAX > UINT32_MAX 342# if UINT_FAST16_MAX > UINT32_MAX
400# define PRIoFAST16 PRIo64 343# define PRIoFAST16 PRIo64
401# else 344# else
402# define PRIoFAST16 "o" 345# define PRIoFAST16 "o"
403# endif 346# endif
404#endif 347#endif
405#if !defined PRIuFAST16 || @PRI_MACROS_BROKEN@ 348#if !defined PRIuFAST16
406# undef PRIuFAST16
407# if UINT_FAST16_MAX > UINT32_MAX 349# if UINT_FAST16_MAX > UINT32_MAX
408# define PRIuFAST16 PRIu64 350# define PRIuFAST16 PRIu64
409# else 351# else
410# define PRIuFAST16 "u" 352# define PRIuFAST16 "u"
411# endif 353# endif
412#endif 354#endif
413#if !defined PRIxFAST16 || @PRI_MACROS_BROKEN@ 355#if !defined PRIxFAST16
414# undef PRIxFAST16
415# if UINT_FAST16_MAX > UINT32_MAX 356# if UINT_FAST16_MAX > UINT32_MAX
416# define PRIxFAST16 PRIx64 357# define PRIxFAST16 PRIx64
417# else 358# else
418# define PRIxFAST16 "x" 359# define PRIxFAST16 "x"
419# endif 360# endif
420#endif 361#endif
421#if !defined PRIXFAST16 || @PRI_MACROS_BROKEN@ 362#if !defined PRIXFAST16
422# undef PRIXFAST16
423# if UINT_FAST16_MAX > UINT32_MAX 363# if UINT_FAST16_MAX > UINT32_MAX
424# define PRIXFAST16 PRIX64 364# define PRIXFAST16 PRIX64
425# else 365# else
426# define PRIXFAST16 "X" 366# define PRIXFAST16 "X"
427# endif 367# endif
428#endif 368#endif
429#if !defined PRIdFAST32 || @PRI_MACROS_BROKEN@ 369#if !defined PRIdFAST32
430# undef PRIdFAST32
431# if INT_FAST32_MAX > INT32_MAX 370# if INT_FAST32_MAX > INT32_MAX
432# define PRIdFAST32 PRId64 371# define PRIdFAST32 PRId64
433# else 372# else
434# define PRIdFAST32 "d" 373# define PRIdFAST32 "d"
435# endif 374# endif
436#endif 375#endif
437#if !defined PRIiFAST32 || @PRI_MACROS_BROKEN@ 376#if !defined PRIiFAST32
438# undef PRIiFAST32
439# if INT_FAST32_MAX > INT32_MAX 377# if INT_FAST32_MAX > INT32_MAX
440# define PRIiFAST32 PRIi64 378# define PRIiFAST32 PRIi64
441# else 379# else
442# define PRIiFAST32 "i" 380# define PRIiFAST32 "i"
443# endif 381# endif
444#endif 382#endif
445#if !defined PRIoFAST32 || @PRI_MACROS_BROKEN@ 383#if !defined PRIoFAST32
446# undef PRIoFAST32
447# if UINT_FAST32_MAX > UINT32_MAX 384# if UINT_FAST32_MAX > UINT32_MAX
448# define PRIoFAST32 PRIo64 385# define PRIoFAST32 PRIo64
449# else 386# else
450# define PRIoFAST32 "o" 387# define PRIoFAST32 "o"
451# endif 388# endif
452#endif 389#endif
453#if !defined PRIuFAST32 || @PRI_MACROS_BROKEN@ 390#if !defined PRIuFAST32
454# undef PRIuFAST32
455# if UINT_FAST32_MAX > UINT32_MAX 391# if UINT_FAST32_MAX > UINT32_MAX
456# define PRIuFAST32 PRIu64 392# define PRIuFAST32 PRIu64
457# else 393# else
458# define PRIuFAST32 "u" 394# define PRIuFAST32 "u"
459# endif 395# endif
460#endif 396#endif
461#if !defined PRIxFAST32 || @PRI_MACROS_BROKEN@ 397#if !defined PRIxFAST32
462# undef PRIxFAST32
463# if UINT_FAST32_MAX > UINT32_MAX 398# if UINT_FAST32_MAX > UINT32_MAX
464# define PRIxFAST32 PRIx64 399# define PRIxFAST32 PRIx64
465# else 400# else
466# define PRIxFAST32 "x" 401# define PRIxFAST32 "x"
467# endif 402# endif
468#endif 403#endif
469#if !defined PRIXFAST32 || @PRI_MACROS_BROKEN@ 404#if !defined PRIXFAST32
470# undef PRIXFAST32
471# if UINT_FAST32_MAX > UINT32_MAX 405# if UINT_FAST32_MAX > UINT32_MAX
472# define PRIXFAST32 PRIX64 406# define PRIXFAST32 PRIX64
473# else 407# else
@@ -475,76 +409,64 @@
475# endif 409# endif
476#endif 410#endif
477#ifdef INT64_MAX 411#ifdef INT64_MAX
478# if !defined PRIdFAST64 || @PRI_MACROS_BROKEN@ 412# if !defined PRIdFAST64
479# undef PRIdFAST64
480# define PRIdFAST64 PRId64 413# define PRIdFAST64 PRId64
481# endif 414# endif
482# if !defined PRIiFAST64 || @PRI_MACROS_BROKEN@ 415# if !defined PRIiFAST64
483# undef PRIiFAST64
484# define PRIiFAST64 PRIi64 416# define PRIiFAST64 PRIi64
485# endif 417# endif
486#endif 418#endif
487#ifdef UINT64_MAX 419#ifdef UINT64_MAX
488# if !defined PRIoFAST64 || @PRI_MACROS_BROKEN@ 420# if !defined PRIoFAST64
489# undef PRIoFAST64
490# define PRIoFAST64 PRIo64 421# define PRIoFAST64 PRIo64
491# endif 422# endif
492# if !defined PRIuFAST64 || @PRI_MACROS_BROKEN@ 423# if !defined PRIuFAST64
493# undef PRIuFAST64
494# define PRIuFAST64 PRIu64 424# define PRIuFAST64 PRIu64
495# endif 425# endif
496# if !defined PRIxFAST64 || @PRI_MACROS_BROKEN@ 426# if !defined PRIxFAST64
497# undef PRIxFAST64
498# define PRIxFAST64 PRIx64 427# define PRIxFAST64 PRIx64
499# endif 428# endif
500# if !defined PRIXFAST64 || @PRI_MACROS_BROKEN@ 429# if !defined PRIXFAST64
501# undef PRIXFAST64
502# define PRIXFAST64 PRIX64 430# define PRIXFAST64 PRIX64
503# endif 431# endif
504#endif 432#endif
505 433
506#if !defined PRIdMAX || @PRI_MACROS_BROKEN@ 434#if !defined PRIdMAX
507# undef PRIdMAX
508# if @INT32_MAX_LT_INTMAX_MAX@ 435# if @INT32_MAX_LT_INTMAX_MAX@
509# define PRIdMAX PRId64 436# define PRIdMAX PRId64
510# else 437# else
511# define PRIdMAX "ld" 438# define PRIdMAX "ld"
512# endif 439# endif
513#endif 440#endif
514#if !defined PRIiMAX || @PRI_MACROS_BROKEN@ 441#if !defined PRIiMAX
515# undef PRIiMAX
516# if @INT32_MAX_LT_INTMAX_MAX@ 442# if @INT32_MAX_LT_INTMAX_MAX@
517# define PRIiMAX PRIi64 443# define PRIiMAX PRIi64
518# else 444# else
519# define PRIiMAX "li" 445# define PRIiMAX "li"
520# endif 446# endif
521#endif 447#endif
522#if !defined PRIoMAX || @PRI_MACROS_BROKEN@ 448#if !defined PRIoMAX
523# undef PRIoMAX
524# if @UINT32_MAX_LT_UINTMAX_MAX@ 449# if @UINT32_MAX_LT_UINTMAX_MAX@
525# define PRIoMAX PRIo64 450# define PRIoMAX PRIo64
526# else 451# else
527# define PRIoMAX "lo" 452# define PRIoMAX "lo"
528# endif 453# endif
529#endif 454#endif
530#if !defined PRIuMAX || @PRI_MACROS_BROKEN@ 455#if !defined PRIuMAX
531# undef PRIuMAX
532# if @UINT32_MAX_LT_UINTMAX_MAX@ 456# if @UINT32_MAX_LT_UINTMAX_MAX@
533# define PRIuMAX PRIu64 457# define PRIuMAX PRIu64
534# else 458# else
535# define PRIuMAX "lu" 459# define PRIuMAX "lu"
536# endif 460# endif
537#endif 461#endif
538#if !defined PRIxMAX || @PRI_MACROS_BROKEN@ 462#if !defined PRIxMAX
539# undef PRIxMAX
540# if @UINT32_MAX_LT_UINTMAX_MAX@ 463# if @UINT32_MAX_LT_UINTMAX_MAX@
541# define PRIxMAX PRIx64 464# define PRIxMAX PRIx64
542# else 465# else
543# define PRIxMAX "lx" 466# define PRIxMAX "lx"
544# endif 467# endif
545#endif 468#endif
546#if !defined PRIXMAX || @PRI_MACROS_BROKEN@ 469#if !defined PRIXMAX
547# undef PRIXMAX
548# if @UINT32_MAX_LT_UINTMAX_MAX@ 470# if @UINT32_MAX_LT_UINTMAX_MAX@
549# define PRIXMAX PRIX64 471# define PRIXMAX PRIX64
550# else 472# else
@@ -552,129 +474,108 @@
552# endif 474# endif
553#endif 475#endif
554 476
555#if !defined PRIdPTR || @PRI_MACROS_BROKEN@ 477#if !defined PRIdPTR
556# undef PRIdPTR
557# ifdef INTPTR_MAX 478# ifdef INTPTR_MAX
558# define PRIdPTR @PRIPTR_PREFIX@ "d" 479# define PRIdPTR @PRIPTR_PREFIX@ "d"
559# endif 480# endif
560#endif 481#endif
561#if !defined PRIiPTR || @PRI_MACROS_BROKEN@ 482#if !defined PRIiPTR
562# undef PRIiPTR
563# ifdef INTPTR_MAX 483# ifdef INTPTR_MAX
564# define PRIiPTR @PRIPTR_PREFIX@ "i" 484# define PRIiPTR @PRIPTR_PREFIX@ "i"
565# endif 485# endif
566#endif 486#endif
567#if !defined PRIoPTR || @PRI_MACROS_BROKEN@ 487#if !defined PRIoPTR
568# undef PRIoPTR
569# ifdef UINTPTR_MAX 488# ifdef UINTPTR_MAX
570# define PRIoPTR @PRIPTR_PREFIX@ "o" 489# define PRIoPTR @PRIPTR_PREFIX@ "o"
571# endif 490# endif
572#endif 491#endif
573#if !defined PRIuPTR || @PRI_MACROS_BROKEN@ 492#if !defined PRIuPTR
574# undef PRIuPTR
575# ifdef UINTPTR_MAX 493# ifdef UINTPTR_MAX
576# define PRIuPTR @PRIPTR_PREFIX@ "u" 494# define PRIuPTR @PRIPTR_PREFIX@ "u"
577# endif 495# endif
578#endif 496#endif
579#if !defined PRIxPTR || @PRI_MACROS_BROKEN@ 497#if !defined PRIxPTR
580# undef PRIxPTR
581# ifdef UINTPTR_MAX 498# ifdef UINTPTR_MAX
582# define PRIxPTR @PRIPTR_PREFIX@ "x" 499# define PRIxPTR @PRIPTR_PREFIX@ "x"
583# endif 500# endif
584#endif 501#endif
585#if !defined PRIXPTR || @PRI_MACROS_BROKEN@ 502#if !defined PRIXPTR
586# undef PRIXPTR
587# ifdef UINTPTR_MAX 503# ifdef UINTPTR_MAX
588# define PRIXPTR @PRIPTR_PREFIX@ "X" 504# define PRIXPTR @PRIPTR_PREFIX@ "X"
589# endif 505# endif
590#endif 506#endif
591 507
592#if !defined SCNd8 || @PRI_MACROS_BROKEN@ 508#if !defined SCNd8
593# undef SCNd8
594# ifdef INT8_MAX 509# ifdef INT8_MAX
595# define SCNd8 "hhd" 510# define SCNd8 "hhd"
596# endif 511# endif
597#endif 512#endif
598#if !defined SCNi8 || @PRI_MACROS_BROKEN@ 513#if !defined SCNi8
599# undef SCNi8
600# ifdef INT8_MAX 514# ifdef INT8_MAX
601# define SCNi8 "hhi" 515# define SCNi8 "hhi"
602# endif 516# endif
603#endif 517#endif
604#if !defined SCNo8 || @PRI_MACROS_BROKEN@ 518#if !defined SCNo8
605# undef SCNo8
606# ifdef UINT8_MAX 519# ifdef UINT8_MAX
607# define SCNo8 "hho" 520# define SCNo8 "hho"
608# endif 521# endif
609#endif 522#endif
610#if !defined SCNu8 || @PRI_MACROS_BROKEN@ 523#if !defined SCNu8
611# undef SCNu8
612# ifdef UINT8_MAX 524# ifdef UINT8_MAX
613# define SCNu8 "hhu" 525# define SCNu8 "hhu"
614# endif 526# endif
615#endif 527#endif
616#if !defined SCNx8 || @PRI_MACROS_BROKEN@ 528#if !defined SCNx8
617# undef SCNx8
618# ifdef UINT8_MAX 529# ifdef UINT8_MAX
619# define SCNx8 "hhx" 530# define SCNx8 "hhx"
620# endif 531# endif
621#endif 532#endif
622#if !defined SCNd16 || @PRI_MACROS_BROKEN@ 533#if !defined SCNd16
623# undef SCNd16
624# ifdef INT16_MAX 534# ifdef INT16_MAX
625# define SCNd16 "hd" 535# define SCNd16 "hd"
626# endif 536# endif
627#endif 537#endif
628#if !defined SCNi16 || @PRI_MACROS_BROKEN@ 538#if !defined SCNi16
629# undef SCNi16
630# ifdef INT16_MAX 539# ifdef INT16_MAX
631# define SCNi16 "hi" 540# define SCNi16 "hi"
632# endif 541# endif
633#endif 542#endif
634#if !defined SCNo16 || @PRI_MACROS_BROKEN@ 543#if !defined SCNo16
635# undef SCNo16
636# ifdef UINT16_MAX 544# ifdef UINT16_MAX
637# define SCNo16 "ho" 545# define SCNo16 "ho"
638# endif 546# endif
639#endif 547#endif
640#if !defined SCNu16 || @PRI_MACROS_BROKEN@ 548#if !defined SCNu16
641# undef SCNu16
642# ifdef UINT16_MAX 549# ifdef UINT16_MAX
643# define SCNu16 "hu" 550# define SCNu16 "hu"
644# endif 551# endif
645#endif 552#endif
646#if !defined SCNx16 || @PRI_MACROS_BROKEN@ 553#if !defined SCNx16
647# undef SCNx16
648# ifdef UINT16_MAX 554# ifdef UINT16_MAX
649# define SCNx16 "hx" 555# define SCNx16 "hx"
650# endif 556# endif
651#endif 557#endif
652#if !defined SCNd32 || @PRI_MACROS_BROKEN@ 558#if !defined SCNd32
653# undef SCNd32
654# ifdef INT32_MAX 559# ifdef INT32_MAX
655# define SCNd32 "d" 560# define SCNd32 "d"
656# endif 561# endif
657#endif 562#endif
658#if !defined SCNi32 || @PRI_MACROS_BROKEN@ 563#if !defined SCNi32
659# undef SCNi32
660# ifdef INT32_MAX 564# ifdef INT32_MAX
661# define SCNi32 "i" 565# define SCNi32 "i"
662# endif 566# endif
663#endif 567#endif
664#if !defined SCNo32 || @PRI_MACROS_BROKEN@ 568#if !defined SCNo32
665# undef SCNo32
666# ifdef UINT32_MAX 569# ifdef UINT32_MAX
667# define SCNo32 "o" 570# define SCNo32 "o"
668# endif 571# endif
669#endif 572#endif
670#if !defined SCNu32 || @PRI_MACROS_BROKEN@ 573#if !defined SCNu32
671# undef SCNu32
672# ifdef UINT32_MAX 574# ifdef UINT32_MAX
673# define SCNu32 "u" 575# define SCNu32 "u"
674# endif 576# endif
675#endif 577#endif
676#if !defined SCNx32 || @PRI_MACROS_BROKEN@ 578#if !defined SCNx32
677# undef SCNx32
678# ifdef UINT32_MAX 579# ifdef UINT32_MAX
679# define SCNx32 "x" 580# define SCNx32 "x"
680# endif 581# endif
@@ -687,12 +588,10 @@
687# elif LONG_MAX >> 30 == 1 588# elif LONG_MAX >> 30 == 1
688# define _SCN64_PREFIX _LONG_LONG_FORMAT_PREFIX 589# define _SCN64_PREFIX _LONG_LONG_FORMAT_PREFIX
689# endif 590# endif
690# if !defined SCNd64 || @PRI_MACROS_BROKEN@ 591# if !defined SCNd64
691# undef SCNd64
692# define SCNd64 _SCN64_PREFIX "d" 592# define SCNd64 _SCN64_PREFIX "d"
693# endif 593# endif
694# if !defined SCNi64 || @PRI_MACROS_BROKEN@ 594# if !defined SCNi64
695# undef SCNi64
696# define SCNi64 _SCN64_PREFIX "i" 595# define SCNi64 _SCN64_PREFIX "i"
697# endif 596# endif
698#endif 597#endif
@@ -704,107 +603,83 @@
704# elif ULONG_MAX >> 31 == 1 603# elif ULONG_MAX >> 31 == 1
705# define _SCNu64_PREFIX _LONG_LONG_FORMAT_PREFIX 604# define _SCNu64_PREFIX _LONG_LONG_FORMAT_PREFIX
706# endif 605# endif
707# if !defined SCNo64 || @PRI_MACROS_BROKEN@ 606# if !defined SCNo64
708# undef SCNo64
709# define SCNo64 _SCNu64_PREFIX "o" 607# define SCNo64 _SCNu64_PREFIX "o"
710# endif 608# endif
711# if !defined SCNu64 || @PRI_MACROS_BROKEN@ 609# if !defined SCNu64
712# undef SCNu64
713# define SCNu64 _SCNu64_PREFIX "u" 610# define SCNu64 _SCNu64_PREFIX "u"
714# endif 611# endif
715# if !defined SCNx64 || @PRI_MACROS_BROKEN@ 612# if !defined SCNx64
716# undef SCNx64
717# define SCNx64 _SCNu64_PREFIX "x" 613# define SCNx64 _SCNu64_PREFIX "x"
718# endif 614# endif
719#endif 615#endif
720 616
721#if !defined SCNdLEAST8 || @PRI_MACROS_BROKEN@ 617#if !defined SCNdLEAST8
722# undef SCNdLEAST8
723# define SCNdLEAST8 "hhd" 618# define SCNdLEAST8 "hhd"
724#endif 619#endif
725#if !defined SCNiLEAST8 || @PRI_MACROS_BROKEN@ 620#if !defined SCNiLEAST8
726# undef SCNiLEAST8
727# define SCNiLEAST8 "hhi" 621# define SCNiLEAST8 "hhi"
728#endif 622#endif
729#if !defined SCNoLEAST8 || @PRI_MACROS_BROKEN@ 623#if !defined SCNoLEAST8
730# undef SCNoLEAST8
731# define SCNoLEAST8 "hho" 624# define SCNoLEAST8 "hho"
732#endif 625#endif
733#if !defined SCNuLEAST8 || @PRI_MACROS_BROKEN@ 626#if !defined SCNuLEAST8
734# undef SCNuLEAST8
735# define SCNuLEAST8 "hhu" 627# define SCNuLEAST8 "hhu"
736#endif 628#endif
737#if !defined SCNxLEAST8 || @PRI_MACROS_BROKEN@ 629#if !defined SCNxLEAST8
738# undef SCNxLEAST8
739# define SCNxLEAST8 "hhx" 630# define SCNxLEAST8 "hhx"
740#endif 631#endif
741#if !defined SCNdLEAST16 || @PRI_MACROS_BROKEN@ 632#if !defined SCNdLEAST16
742# undef SCNdLEAST16
743# define SCNdLEAST16 "hd" 633# define SCNdLEAST16 "hd"
744#endif 634#endif
745#if !defined SCNiLEAST16 || @PRI_MACROS_BROKEN@ 635#if !defined SCNiLEAST16
746# undef SCNiLEAST16
747# define SCNiLEAST16 "hi" 636# define SCNiLEAST16 "hi"
748#endif 637#endif
749#if !defined SCNoLEAST16 || @PRI_MACROS_BROKEN@ 638#if !defined SCNoLEAST16
750# undef SCNoLEAST16
751# define SCNoLEAST16 "ho" 639# define SCNoLEAST16 "ho"
752#endif 640#endif
753#if !defined SCNuLEAST16 || @PRI_MACROS_BROKEN@ 641#if !defined SCNuLEAST16
754# undef SCNuLEAST16
755# define SCNuLEAST16 "hu" 642# define SCNuLEAST16 "hu"
756#endif 643#endif
757#if !defined SCNxLEAST16 || @PRI_MACROS_BROKEN@ 644#if !defined SCNxLEAST16
758# undef SCNxLEAST16
759# define SCNxLEAST16 "hx" 645# define SCNxLEAST16 "hx"
760#endif 646#endif
761#if !defined SCNdLEAST32 || @PRI_MACROS_BROKEN@ 647#if !defined SCNdLEAST32
762# undef SCNdLEAST32
763# define SCNdLEAST32 "d" 648# define SCNdLEAST32 "d"
764#endif 649#endif
765#if !defined SCNiLEAST32 || @PRI_MACROS_BROKEN@ 650#if !defined SCNiLEAST32
766# undef SCNiLEAST32
767# define SCNiLEAST32 "i" 651# define SCNiLEAST32 "i"
768#endif 652#endif
769#if !defined SCNoLEAST32 || @PRI_MACROS_BROKEN@ 653#if !defined SCNoLEAST32
770# undef SCNoLEAST32
771# define SCNoLEAST32 "o" 654# define SCNoLEAST32 "o"
772#endif 655#endif
773#if !defined SCNuLEAST32 || @PRI_MACROS_BROKEN@ 656#if !defined SCNuLEAST32
774# undef SCNuLEAST32
775# define SCNuLEAST32 "u" 657# define SCNuLEAST32 "u"
776#endif 658#endif
777#if !defined SCNxLEAST32 || @PRI_MACROS_BROKEN@ 659#if !defined SCNxLEAST32
778# undef SCNxLEAST32
779# define SCNxLEAST32 "x" 660# define SCNxLEAST32 "x"
780#endif 661#endif
781#ifdef INT64_MAX 662#ifdef INT64_MAX
782# if !defined SCNdLEAST64 || @PRI_MACROS_BROKEN@ 663# if !defined SCNdLEAST64
783# undef SCNdLEAST64
784# define SCNdLEAST64 SCNd64 664# define SCNdLEAST64 SCNd64
785# endif 665# endif
786# if !defined SCNiLEAST64 || @PRI_MACROS_BROKEN@ 666# if !defined SCNiLEAST64
787# undef SCNiLEAST64
788# define SCNiLEAST64 SCNi64 667# define SCNiLEAST64 SCNi64
789# endif 668# endif
790#endif 669#endif
791#ifdef UINT64_MAX 670#ifdef UINT64_MAX
792# if !defined SCNoLEAST64 || @PRI_MACROS_BROKEN@ 671# if !defined SCNoLEAST64
793# undef SCNoLEAST64
794# define SCNoLEAST64 SCNo64 672# define SCNoLEAST64 SCNo64
795# endif 673# endif
796# if !defined SCNuLEAST64 || @PRI_MACROS_BROKEN@ 674# if !defined SCNuLEAST64
797# undef SCNuLEAST64
798# define SCNuLEAST64 SCNu64 675# define SCNuLEAST64 SCNu64
799# endif 676# endif
800# if !defined SCNxLEAST64 || @PRI_MACROS_BROKEN@ 677# if !defined SCNxLEAST64
801# undef SCNxLEAST64
802# define SCNxLEAST64 SCNx64 678# define SCNxLEAST64 SCNx64
803# endif 679# endif
804#endif 680#endif
805 681
806#if !defined SCNdFAST8 || @PRI_MACROS_BROKEN@ 682#if !defined SCNdFAST8
807# undef SCNdFAST8
808# if INT_FAST8_MAX > INT32_MAX 683# if INT_FAST8_MAX > INT32_MAX
809# define SCNdFAST8 SCNd64 684# define SCNdFAST8 SCNd64
810# elif INT_FAST8_MAX == 0x7fff 685# elif INT_FAST8_MAX == 0x7fff
@@ -815,8 +690,7 @@
815# define SCNdFAST8 "d" 690# define SCNdFAST8 "d"
816# endif 691# endif
817#endif 692#endif
818#if !defined SCNiFAST8 || @PRI_MACROS_BROKEN@ 693#if !defined SCNiFAST8
819# undef SCNiFAST8
820# if INT_FAST8_MAX > INT32_MAX 694# if INT_FAST8_MAX > INT32_MAX
821# define SCNiFAST8 SCNi64 695# define SCNiFAST8 SCNi64
822# elif INT_FAST8_MAX == 0x7fff 696# elif INT_FAST8_MAX == 0x7fff
@@ -827,8 +701,7 @@
827# define SCNiFAST8 "i" 701# define SCNiFAST8 "i"
828# endif 702# endif
829#endif 703#endif
830#if !defined SCNoFAST8 || @PRI_MACROS_BROKEN@ 704#if !defined SCNoFAST8
831# undef SCNoFAST8
832# if UINT_FAST8_MAX > UINT32_MAX 705# if UINT_FAST8_MAX > UINT32_MAX
833# define SCNoFAST8 SCNo64 706# define SCNoFAST8 SCNo64
834# elif UINT_FAST8_MAX == 0xffff 707# elif UINT_FAST8_MAX == 0xffff
@@ -839,8 +712,7 @@
839# define SCNoFAST8 "o" 712# define SCNoFAST8 "o"
840# endif 713# endif
841#endif 714#endif
842#if !defined SCNuFAST8 || @PRI_MACROS_BROKEN@ 715#if !defined SCNuFAST8
843# undef SCNuFAST8
844# if UINT_FAST8_MAX > UINT32_MAX 716# if UINT_FAST8_MAX > UINT32_MAX
845# define SCNuFAST8 SCNu64 717# define SCNuFAST8 SCNu64
846# elif UINT_FAST8_MAX == 0xffff 718# elif UINT_FAST8_MAX == 0xffff
@@ -851,8 +723,7 @@
851# define SCNuFAST8 "u" 723# define SCNuFAST8 "u"
852# endif 724# endif
853#endif 725#endif
854#if !defined SCNxFAST8 || @PRI_MACROS_BROKEN@ 726#if !defined SCNxFAST8
855# undef SCNxFAST8
856# if UINT_FAST8_MAX > UINT32_MAX 727# if UINT_FAST8_MAX > UINT32_MAX
857# define SCNxFAST8 SCNx64 728# define SCNxFAST8 SCNx64
858# elif UINT_FAST8_MAX == 0xffff 729# elif UINT_FAST8_MAX == 0xffff
@@ -863,8 +734,7 @@
863# define SCNxFAST8 "x" 734# define SCNxFAST8 "x"
864# endif 735# endif
865#endif 736#endif
866#if !defined SCNdFAST16 || @PRI_MACROS_BROKEN@ 737#if !defined SCNdFAST16
867# undef SCNdFAST16
868# if INT_FAST16_MAX > INT32_MAX 738# if INT_FAST16_MAX > INT32_MAX
869# define SCNdFAST16 SCNd64 739# define SCNdFAST16 SCNd64
870# elif INT_FAST16_MAX == 0x7fff 740# elif INT_FAST16_MAX == 0x7fff
@@ -873,8 +743,7 @@
873# define SCNdFAST16 "d" 743# define SCNdFAST16 "d"
874# endif 744# endif
875#endif 745#endif
876#if !defined SCNiFAST16 || @PRI_MACROS_BROKEN@ 746#if !defined SCNiFAST16
877# undef SCNiFAST16
878# if INT_FAST16_MAX > INT32_MAX 747# if INT_FAST16_MAX > INT32_MAX
879# define SCNiFAST16 SCNi64 748# define SCNiFAST16 SCNi64
880# elif INT_FAST16_MAX == 0x7fff 749# elif INT_FAST16_MAX == 0x7fff
@@ -883,8 +752,7 @@
883# define SCNiFAST16 "i" 752# define SCNiFAST16 "i"
884# endif 753# endif
885#endif 754#endif
886#if !defined SCNoFAST16 || @PRI_MACROS_BROKEN@ 755#if !defined SCNoFAST16
887# undef SCNoFAST16
888# if UINT_FAST16_MAX > UINT32_MAX 756# if UINT_FAST16_MAX > UINT32_MAX
889# define SCNoFAST16 SCNo64 757# define SCNoFAST16 SCNo64
890# elif UINT_FAST16_MAX == 0xffff 758# elif UINT_FAST16_MAX == 0xffff
@@ -893,8 +761,7 @@
893# define SCNoFAST16 "o" 761# define SCNoFAST16 "o"
894# endif 762# endif
895#endif 763#endif
896#if !defined SCNuFAST16 || @PRI_MACROS_BROKEN@ 764#if !defined SCNuFAST16
897# undef SCNuFAST16
898# if UINT_FAST16_MAX > UINT32_MAX 765# if UINT_FAST16_MAX > UINT32_MAX
899# define SCNuFAST16 SCNu64 766# define SCNuFAST16 SCNu64
900# elif UINT_FAST16_MAX == 0xffff 767# elif UINT_FAST16_MAX == 0xffff
@@ -903,8 +770,7 @@
903# define SCNuFAST16 "u" 770# define SCNuFAST16 "u"
904# endif 771# endif
905#endif 772#endif
906#if !defined SCNxFAST16 || @PRI_MACROS_BROKEN@ 773#if !defined SCNxFAST16
907# undef SCNxFAST16
908# if UINT_FAST16_MAX > UINT32_MAX 774# if UINT_FAST16_MAX > UINT32_MAX
909# define SCNxFAST16 SCNx64 775# define SCNxFAST16 SCNx64
910# elif UINT_FAST16_MAX == 0xffff 776# elif UINT_FAST16_MAX == 0xffff
@@ -913,40 +779,35 @@
913# define SCNxFAST16 "x" 779# define SCNxFAST16 "x"
914# endif 780# endif
915#endif 781#endif
916#if !defined SCNdFAST32 || @PRI_MACROS_BROKEN@ 782#if !defined SCNdFAST32
917# undef SCNdFAST32
918# if INT_FAST32_MAX > INT32_MAX 783# if INT_FAST32_MAX > INT32_MAX
919# define SCNdFAST32 SCNd64 784# define SCNdFAST32 SCNd64
920# else 785# else
921# define SCNdFAST32 "d" 786# define SCNdFAST32 "d"
922# endif 787# endif
923#endif 788#endif
924#if !defined SCNiFAST32 || @PRI_MACROS_BROKEN@ 789#if !defined SCNiFAST32
925# undef SCNiFAST32
926# if INT_FAST32_MAX > INT32_MAX 790# if INT_FAST32_MAX > INT32_MAX
927# define SCNiFAST32 SCNi64 791# define SCNiFAST32 SCNi64
928# else 792# else
929# define SCNiFAST32 "i" 793# define SCNiFAST32 "i"
930# endif 794# endif
931#endif 795#endif
932#if !defined SCNoFAST32 || @PRI_MACROS_BROKEN@ 796#if !defined SCNoFAST32
933# undef SCNoFAST32
934# if UINT_FAST32_MAX > UINT32_MAX 797# if UINT_FAST32_MAX > UINT32_MAX
935# define SCNoFAST32 SCNo64 798# define SCNoFAST32 SCNo64
936# else 799# else
937# define SCNoFAST32 "o" 800# define SCNoFAST32 "o"
938# endif 801# endif
939#endif 802#endif
940#if !defined SCNuFAST32 || @PRI_MACROS_BROKEN@ 803#if !defined SCNuFAST32
941# undef SCNuFAST32
942# if UINT_FAST32_MAX > UINT32_MAX 804# if UINT_FAST32_MAX > UINT32_MAX
943# define SCNuFAST32 SCNu64 805# define SCNuFAST32 SCNu64
944# else 806# else
945# define SCNuFAST32 "u" 807# define SCNuFAST32 "u"
946# endif 808# endif
947#endif 809#endif
948#if !defined SCNxFAST32 || @PRI_MACROS_BROKEN@ 810#if !defined SCNxFAST32
949# undef SCNxFAST32
950# if UINT_FAST32_MAX > UINT32_MAX 811# if UINT_FAST32_MAX > UINT32_MAX
951# define SCNxFAST32 SCNx64 812# define SCNxFAST32 SCNx64
952# else 813# else
@@ -954,64 +815,54 @@
954# endif 815# endif
955#endif 816#endif
956#ifdef INT64_MAX 817#ifdef INT64_MAX
957# if !defined SCNdFAST64 || @PRI_MACROS_BROKEN@ 818# if !defined SCNdFAST64
958# undef SCNdFAST64
959# define SCNdFAST64 SCNd64 819# define SCNdFAST64 SCNd64
960# endif 820# endif
961# if !defined SCNiFAST64 || @PRI_MACROS_BROKEN@ 821# if !defined SCNiFAST64
962# undef SCNiFAST64
963# define SCNiFAST64 SCNi64 822# define SCNiFAST64 SCNi64
964# endif 823# endif
965#endif 824#endif
966#ifdef UINT64_MAX 825#ifdef UINT64_MAX
967# if !defined SCNoFAST64 || @PRI_MACROS_BROKEN@ 826# if !defined SCNoFAST64
968# undef SCNoFAST64
969# define SCNoFAST64 SCNo64 827# define SCNoFAST64 SCNo64
970# endif 828# endif
971# if !defined SCNuFAST64 || @PRI_MACROS_BROKEN@ 829# if !defined SCNuFAST64
972# undef SCNuFAST64
973# define SCNuFAST64 SCNu64 830# define SCNuFAST64 SCNu64
974# endif 831# endif
975# if !defined SCNxFAST64 || @PRI_MACROS_BROKEN@ 832# if !defined SCNxFAST64
976# undef SCNxFAST64
977# define SCNxFAST64 SCNx64 833# define SCNxFAST64 SCNx64
978# endif 834# endif
979#endif 835#endif
980 836
981#if !defined SCNdMAX || @PRI_MACROS_BROKEN@ 837#if !defined SCNdMAX
982# undef SCNdMAX
983# if @INT32_MAX_LT_INTMAX_MAX@ 838# if @INT32_MAX_LT_INTMAX_MAX@
984# define SCNdMAX SCNd64 839# define SCNdMAX SCNd64
985# else 840# else
986# define SCNdMAX "ld" 841# define SCNdMAX "ld"
987# endif 842# endif
988#endif 843#endif
989#if !defined SCNiMAX || @PRI_MACROS_BROKEN@ 844#if !defined SCNiMAX
990# undef SCNiMAX
991# if @INT32_MAX_LT_INTMAX_MAX@ 845# if @INT32_MAX_LT_INTMAX_MAX@
992# define SCNiMAX SCNi64 846# define SCNiMAX SCNi64
993# else 847# else
994# define SCNiMAX "li" 848# define SCNiMAX "li"
995# endif 849# endif
996#endif 850#endif
997#if !defined SCNoMAX || @PRI_MACROS_BROKEN@ 851#if !defined SCNoMAX
998# undef SCNoMAX
999# if @UINT32_MAX_LT_UINTMAX_MAX@ 852# if @UINT32_MAX_LT_UINTMAX_MAX@
1000# define SCNoMAX SCNo64 853# define SCNoMAX SCNo64
1001# else 854# else
1002# define SCNoMAX "lo" 855# define SCNoMAX "lo"
1003# endif 856# endif
1004#endif 857#endif
1005#if !defined SCNuMAX || @PRI_MACROS_BROKEN@ 858#if !defined SCNuMAX
1006# undef SCNuMAX
1007# if @UINT32_MAX_LT_UINTMAX_MAX@ 859# if @UINT32_MAX_LT_UINTMAX_MAX@
1008# define SCNuMAX SCNu64 860# define SCNuMAX SCNu64
1009# else 861# else
1010# define SCNuMAX "lu" 862# define SCNuMAX "lu"
1011# endif 863# endif
1012#endif 864#endif
1013#if !defined SCNxMAX || @PRI_MACROS_BROKEN@ 865#if !defined SCNxMAX
1014# undef SCNxMAX
1015# if @UINT32_MAX_LT_UINTMAX_MAX@ 866# if @UINT32_MAX_LT_UINTMAX_MAX@
1016# define SCNxMAX SCNx64 867# define SCNxMAX SCNx64
1017# else 868# else
@@ -1019,32 +870,27 @@
1019# endif 870# endif
1020#endif 871#endif
1021 872
1022#if !defined SCNdPTR || @PRI_MACROS_BROKEN@ 873#if !defined SCNdPTR
1023# undef SCNdPTR
1024# ifdef INTPTR_MAX 874# ifdef INTPTR_MAX
1025# define SCNdPTR @PRIPTR_PREFIX@ "d" 875# define SCNdPTR @PRIPTR_PREFIX@ "d"
1026# endif 876# endif
1027#endif 877#endif
1028#if !defined SCNiPTR || @PRI_MACROS_BROKEN@ 878#if !defined SCNiPTR
1029# undef SCNiPTR
1030# ifdef INTPTR_MAX 879# ifdef INTPTR_MAX
1031# define SCNiPTR @PRIPTR_PREFIX@ "i" 880# define SCNiPTR @PRIPTR_PREFIX@ "i"
1032# endif 881# endif
1033#endif 882#endif
1034#if !defined SCNoPTR || @PRI_MACROS_BROKEN@ 883#if !defined SCNoPTR
1035# undef SCNoPTR
1036# ifdef UINTPTR_MAX 884# ifdef UINTPTR_MAX
1037# define SCNoPTR @PRIPTR_PREFIX@ "o" 885# define SCNoPTR @PRIPTR_PREFIX@ "o"
1038# endif 886# endif
1039#endif 887#endif
1040#if !defined SCNuPTR || @PRI_MACROS_BROKEN@ 888#if !defined SCNuPTR
1041# undef SCNuPTR
1042# ifdef UINTPTR_MAX 889# ifdef UINTPTR_MAX
1043# define SCNuPTR @PRIPTR_PREFIX@ "u" 890# define SCNuPTR @PRIPTR_PREFIX@ "u"
1044# endif 891# endif
1045#endif 892#endif
1046#if !defined SCNxPTR || @PRI_MACROS_BROKEN@ 893#if !defined SCNxPTR
1047# undef SCNxPTR
1048# ifdef UINTPTR_MAX 894# ifdef UINTPTR_MAX
1049# define SCNxPTR @PRIPTR_PREFIX@ "x" 895# define SCNxPTR @PRIPTR_PREFIX@ "x"
1050# endif 896# endif
diff --git a/lib/lchmod.c b/lib/lchmod.c
index e1132116234..77a00609552 100644
--- a/lib/lchmod.c
+++ b/lib/lchmod.c
@@ -76,7 +76,7 @@ lchmod (char const *file, mode_t mode)
76 return -1; 76 return -1;
77 } 77 }
78 78
79# if defined __linux__ || defined __ANDROID__ 79# if defined __linux__ || defined __ANDROID__ || defined __CYGWIN__
80 static char const fmt[] = "/proc/self/fd/%d"; 80 static char const fmt[] = "/proc/self/fd/%d";
81 char buf[sizeof fmt - sizeof "%d" + INT_BUFSIZE_BOUND (int)]; 81 char buf[sizeof fmt - sizeof "%d" + INT_BUFSIZE_BOUND (int)];
82 sprintf (buf, fmt, fd); 82 sprintf (buf, fmt, fd);
diff --git a/lib/mini-gmp-gnulib.c b/lib/mini-gmp-gnulib.c
index 5019be5d52a..e9e8a174c03 100644
--- a/lib/mini-gmp-gnulib.c
+++ b/lib/mini-gmp-gnulib.c
@@ -22,12 +22,14 @@
22 22
23#include "mini-gmp.h" 23#include "mini-gmp.h"
24 24
25/* Pacify GCC -Wsuggest-attribute=const, malloc, pure. */ 25/* Pacify GCC -Wsuggest-attribute=const, pure, malloc. */
26#if 4 < __GNUC__ + (6 <= __GNUC_MINOR__) 26#if 4 < __GNUC__ + (6 <= __GNUC_MINOR__)
27# pragma GCC diagnostic ignored "-Wsuggest-attribute=const" 27# pragma GCC diagnostic ignored "-Wsuggest-attribute=const"
28# pragma GCC diagnostic ignored "-Wsuggest-attribute=malloc"
29# pragma GCC diagnostic ignored "-Wsuggest-attribute=pure" 28# pragma GCC diagnostic ignored "-Wsuggest-attribute=pure"
30#endif 29#endif
30#if 8 <= __GNUC__
31# pragma GCC diagnostic ignored "-Wsuggest-attribute=malloc"
32#endif
31 33
32/* Pacify GCC -Wunused-variable for variables used only in 'assert' calls. */ 34/* Pacify GCC -Wunused-variable for variables used only in 'assert' calls. */
33#if defined NDEBUG && 4 < __GNUC__ + (6 <= __GNUC_MINOR__) 35#if defined NDEBUG && 4 < __GNUC__ + (6 <= __GNUC_MINOR__)
diff --git a/lib/nstrftime.c b/lib/nstrftime.c
index 28b539dc2f2..2816cf4d58b 100644
--- a/lib/nstrftime.c
+++ b/lib/nstrftime.c
@@ -495,15 +495,6 @@ __strftime_internal (STREAM_OR_CHAR_T *s, STRFTIME_ARG (size_t maxsize)
495 const char *format_end = NULL; 495 const char *format_end = NULL;
496#endif 496#endif
497 497
498#if ! defined _LIBC && ! HAVE_RUN_TZSET_TEST
499 /* Solaris 2.5.x and 2.6 tzset sometimes modify the storage returned
500 by localtime. On such systems, we must either use the tzset and
501 localtime wrappers to work around the bug (which sets
502 HAVE_RUN_TZSET_TEST) or make a copy of the structure. */
503 struct tm copy = *tp;
504 tp = &copy;
505#endif
506
507 zone = NULL; 498 zone = NULL;
508#if HAVE_TM_ZONE 499#if HAVE_TM_ZONE
509 /* The POSIX test suite assumes that setting 500 /* The POSIX test suite assumes that setting
diff --git a/lib/regex.h b/lib/regex.h
index 76ff4e342fe..610f139eb39 100644
--- a/lib/regex.h
+++ b/lib/regex.h
@@ -600,11 +600,9 @@ extern void re_set_registers (struct re_pattern_buffer *__buffer,
600#endif /* Use GNU */ 600#endif /* Use GNU */
601 601
602#if defined _REGEX_RE_COMP || (defined _LIBC && defined __USE_MISC) 602#if defined _REGEX_RE_COMP || (defined _LIBC && defined __USE_MISC)
603# ifndef _CRAY
604/* 4.2 bsd compatibility. */ 603/* 4.2 bsd compatibility. */
605extern char *re_comp (const char *); 604extern char *re_comp (const char *);
606extern int re_exec (const char *); 605extern int re_exec (const char *);
607# endif
608#endif 606#endif
609 607
610/* For plain 'restrict', use glibc's __restrict if defined. 608/* For plain 'restrict', use glibc's __restrict if defined.
diff --git a/lib/timespec.h b/lib/timespec.h
index 02684ce6eac..dc999f944b2 100644
--- a/lib/timespec.h
+++ b/lib/timespec.h
@@ -34,7 +34,6 @@ extern "C" {
34#endif 34#endif
35 35
36#include "arg-nonnull.h" 36#include "arg-nonnull.h"
37#include "verify.h"
38 37
39/* Inverse resolution of timespec timestamps (in units per second), 38/* Inverse resolution of timespec timestamps (in units per second),
40 and log base 10 of the inverse resolution. */ 39 and log base 10 of the inverse resolution. */
@@ -59,46 +58,12 @@ make_timespec (time_t s, long int ns)
59 return r; 58 return r;
60} 59}
61 60
62/* Return negative, zero, positive if A < B, A == B, A > B, respectively. 61/* Return negative, zero, positive if A < B, A == B, A > B, respectively. */
63
64 For each timestamp T, this code assumes that either:
65
66 * T.tv_nsec is in the range 0..999999999; or
67 * T.tv_sec corresponds to a valid leap second on a host that supports
68 leap seconds, and T.tv_nsec is in the range 1000000000..1999999999; or
69 * T.tv_sec is the minimum time_t value and T.tv_nsec is -1; or
70 T.tv_sec is the maximum time_t value and T.tv_nsec is 2000000000.
71 This allows for special struct timespec values that are less or
72 greater than all possible valid timestamps.
73
74 In all these cases, it is safe to subtract two tv_nsec values and
75 convert the result to integer without worrying about overflow on
76 any platform of interest to the GNU project, since all such
77 platforms have 32-bit int or wider.
78
79 Replacing "a.tv_nsec - b.tv_nsec" with something like
80 "a.tv_nsec < b.tv_nsec ? -1 : a.tv_nsec > b.tv_nsec" would cause
81 this function to work in some cases where the above assumption is
82 violated, but not in all cases (e.g., a.tv_sec==1, a.tv_nsec==-2,
83 b.tv_sec==0, b.tv_nsec==999999999) and is arguably not worth the
84 extra instructions. Using a subtraction has the advantage of
85 detecting some invalid cases on platforms that detect integer
86 overflow. */
87 62
88_GL_TIMESPEC_INLINE int _GL_ATTRIBUTE_PURE 63_GL_TIMESPEC_INLINE int _GL_ATTRIBUTE_PURE
89timespec_cmp (struct timespec a, struct timespec b) 64timespec_cmp (struct timespec a, struct timespec b)
90{ 65{
91 if (a.tv_sec < b.tv_sec) 66 return 2 * _GL_CMP (a.tv_sec, b.tv_sec) + _GL_CMP (a.tv_nsec, b.tv_nsec);
92 return -1;
93 if (a.tv_sec > b.tv_sec)
94 return 1;
95
96 /* Pacify gcc -Wstrict-overflow (bleeding-edge circa 2017-10-02). See:
97 https://lists.gnu.org/r/bug-gnulib/2017-10/msg00006.html */
98 assume (-1 <= a.tv_nsec && a.tv_nsec <= 2 * TIMESPEC_HZ);
99 assume (-1 <= b.tv_nsec && b.tv_nsec <= 2 * TIMESPEC_HZ);
100
101 return a.tv_nsec - b.tv_nsec;
102} 67}
103 68
104/* Return -1, 0, 1, depending on the sign of A. A.tv_nsec must be 69/* Return -1, 0, 1, depending on the sign of A. A.tv_nsec must be
@@ -106,7 +71,7 @@ timespec_cmp (struct timespec a, struct timespec b)
106_GL_TIMESPEC_INLINE int _GL_ATTRIBUTE_PURE 71_GL_TIMESPEC_INLINE int _GL_ATTRIBUTE_PURE
107timespec_sign (struct timespec a) 72timespec_sign (struct timespec a)
108{ 73{
109 return a.tv_sec < 0 ? -1 : a.tv_sec || a.tv_nsec; 74 return _GL_CMP (a.tv_sec, 0) + (!a.tv_sec & !!a.tv_nsec);
110} 75}
111 76
112struct timespec timespec_add (struct timespec, struct timespec) 77struct timespec timespec_add (struct timespec, struct timespec)