summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormartynas <martynas@openbsd.org>2008-09-15 19:22:32 +0000
committermartynas <martynas@openbsd.org>2008-09-15 19:22:32 +0000
commita0495eddbfd90535f542fb8eafcdc7ae70025eba (patch)
treee7419b759d23cf94d95963405be5d39ebdffac01
parentMake this compile if !MULTIPROCESSOR. (diff)
downloadwireguard-openbsd-a0495eddbfd90535f542fb8eafcdc7ae70025eba.tar.xz
wireguard-openbsd-a0495eddbfd90535f542fb8eafcdc7ae70025eba.zip
- describe how printf(1) and printf(3) %e, %E, %g, %G, %a, %A behave
when the argument is infinity/not-a-number ok millert@, jmc@
-rw-r--r--lib/libc/stdio/printf.340
-rw-r--r--usr.bin/printf/printf.140
2 files changed, 76 insertions, 4 deletions
diff --git a/lib/libc/stdio/printf.3 b/lib/libc/stdio/printf.3
index 240d06027ec..91e10c45456 100644
--- a/lib/libc/stdio/printf.3
+++ b/lib/libc/stdio/printf.3
@@ -1,4 +1,4 @@
-.\" $OpenBSD: printf.3,v 1.56 2008/09/14 11:44:54 martynas Exp $
+.\" $OpenBSD: printf.3,v 1.57 2008/09/15 19:22:32 martynas Exp $
.\"
.\" Copyright (c) 1990, 1991, 1993
.\" The Regents of the University of California. All rights reserved.
@@ -33,7 +33,7 @@
.\"
.\" @(#)printf.3 8.1 (Berkeley) 6/4/93
.\"
-.Dd $Mdocdate: September 14 2008 $
+.Dd $Mdocdate: September 15 2008 $
.Dt PRINTF 3
.Os
.Sh NAME
@@ -465,6 +465,18 @@ conversion uses the letter
to introduce the exponent.
The exponent always contains at least two digits; if the value is zero,
the exponent is 00.
+.Pp
+If the argument is infinity, it will be converted to [-]inf
+.Pq Cm e
+or [-]INF
+.Pq Cm E ,
+respectively.
+If the argument is not-a-number (NaN), it will be converted to
+[-]nan
+.Pq Cm e
+or [-]NAN
+.Pq Cm E ,
+respectively.
.It Cm fF
The
.Li double
@@ -510,6 +522,18 @@ is used if the exponent from its conversion is less than -4 or greater than
or equal to the precision.
Trailing zeros are removed from the fractional part of the result; a
decimal point appears only if it is followed by at least one digit.
+.Pp
+If the argument is infinity, it will be converted to [-]inf
+.Pq Cm g
+or [-]INF
+.Pq Cm G ,
+respectively.
+If the argument is not-a-number (NaN), it will be converted to
+[-]nan
+.Pq Cm g
+or [-]NAN
+.Pq Cm G ,
+respectively.
.It Cm aA
The
.Li double
@@ -558,6 +582,18 @@ Zeroes are always represented with a mantissa of 0 (preceded by a
.Ql -
if appropriate) and an exponent of
.Li +0 .
+.Pp
+If the argument is infinity, it will be converted to [-]inf
+.Pq Cm a
+or [-]INF
+.Pq Cm A ,
+respectively.
+If the argument is not-a-number (NaN), it will be converted to
+[-]nan
+.Pq Cm a
+or [-]NAN
+.Pq Cm A ,
+respectively.
.It Cm c
The
.Li int
diff --git a/usr.bin/printf/printf.1 b/usr.bin/printf/printf.1
index 9ac9e9942ad..e905c8b5c22 100644
--- a/usr.bin/printf/printf.1
+++ b/usr.bin/printf/printf.1
@@ -1,4 +1,4 @@
-.\" $OpenBSD: printf.1,v 1.20 2008/09/14 11:44:54 martynas Exp $
+.\" $OpenBSD: printf.1,v 1.21 2008/09/15 19:22:32 martynas Exp $
.\"
.\" Copyright (c) 1989, 1990 The Regents of the University of California.
.\" All rights reserved.
@@ -32,7 +32,7 @@
.\"
.\" from: @(#)printf.1 5.11 (Berkeley) 7/24/91
.\"
-.Dd $Mdocdate: September 14 2008 $
+.Dd $Mdocdate: September 15 2008 $
.Dt PRINTF 1
.Os
.Sh NAME
@@ -269,6 +269,18 @@ An upper-case
is used for an
.Cm E
format.
+.Pp
+If the argument is infinity, it will be converted to [-]inf
+.Pq Cm e
+or [-]INF
+.Pq Cm E ,
+respectively.
+If the argument is not-a-number (NaN), it will be converted to
+[-]nan
+.Pq Cm e
+or [-]NAN
+.Pq Cm E ,
+respectively.
.It Cm gG
The
.Ar argument
@@ -278,6 +290,18 @@ or in style
.Cm e
.Pq Cm E
whichever gives full precision in minimum space.
+.Pp
+If the argument is infinity, it will be converted to [-]inf
+.Pq Cm g
+or [-]INF
+.Pq Cm G ,
+respectively.
+If the argument is not-a-number (NaN), it will be converted to
+[-]nan
+.Pq Cm g
+or [-]NAN
+.Pq Cm G ,
+respectively.
.It Cm aA
The
.Ar argument
@@ -289,6 +313,18 @@ where there is one digit before the hexadecimal point and the number
after is equal to the precision specification for the argument.
When the precision is missing, enough digits are produced to convey
the argument's exact double-precision floating-point representation.
+.Pp
+If the argument is infinity, it will be converted to [-]inf
+.Pq Cm a
+or [-]INF
+.Pq Cm A ,
+respectively.
+If the argument is not-a-number (NaN), it will be converted to
+[-]nan
+.Pq Cm a
+or [-]NAN
+.Pq Cm A ,
+respectively.
.It Cm b
Characters from the string
.Ar argument