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 now have a corresponding type-generic macro in . +* The ISO C2X macro _PRINTF_NAN_LEN_MAX has been added to . + 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 +#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: