aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS2
-rw-r--r--libio/stdio.h6
-rw-r--r--manual/stdio.texi5
3 files changed, 12 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index a923bd644d..614b21e471 100644
--- a/NEWS
+++ b/NEWS
@@ -45,6 +45,8 @@ Major new features:
* The exp10 functions in <math.h> now have a corresponding type-generic
macro in <tgmath.h>.
+* The ISO C2X macro _PRINTF_NAN_LEN_MAX has been added to <stdio.h>.
+
Deprecated and removed features, and other changes affecting compatibility:
* The r_version update in the debugger interface makes the glibc binary
diff --git a/libio/stdio.h b/libio/stdio.h
index 497da016ff..0a5c76b552 100644
--- a/libio/stdio.h
+++ b/libio/stdio.h
@@ -133,6 +133,12 @@ typedef __fpos64_t fpos64_t;
#include <bits/stdio_lim.h>
+#if __GLIBC_USE (ISOC2X)
+/* Maximum length of printf output for a NaN. */
+# define _PRINTF_NAN_LEN_MAX 4
+#endif
+
+
/* Standard streams. */
extern FILE *stdin; /* Standard input stream. */
extern FILE *stdout; /* Standard output stream. */
diff --git a/manual/stdio.texi b/manual/stdio.texi
index fd7ed0cedc..1d235be68d 100644
--- a/manual/stdio.texi
+++ b/manual/stdio.texi
@@ -2108,7 +2108,10 @@ If the value to be printed represents infinity or a NaN, the output is
@w{[@code{-}]@code{inf}} or @code{nan} respectively if the conversion
specifier is @samp{%a}, @samp{%e}, @samp{%f}, or @samp{%g} and it is
@w{[@code{-}]@code{INF}} or @code{NAN} respectively if the conversion is
-@samp{%A}, @samp{%E}, or @samp{%G}.
+@samp{%A}, @samp{%E}, or @samp{%G}. On some implementations, a NaN
+may result in longer output with information about the payload of the
+NaN; ISO C2X defines a macro @code{_PRINTF_NAN_LEN_MAX} giving the
+maximum length of such output.
The following flags can be used to modify the behavior: