aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJens Schweikhardt <schweikh@FreeBSD.org>2002-08-27 20:11:08 +0000
committerJens Schweikhardt <schweikh@FreeBSD.org>2002-08-27 20:11:08 +0000
commit3dd657600a9690cb262fac4a8781c14bd6eae786 (patch)
tree65fdc6ccfc7daabbf34b98094d23dfc7077bf6d4 /lib
parent3c94f41f51a055058d81e0e10667a67ec380f878 (diff)
downloadsrc-3dd657600a9690cb262fac4a8781c14bd6eae786.tar.gz
src-3dd657600a9690cb262fac4a8781c14bd6eae786.zip
Print a '-' sign for negative zero. Tested with
#include <stdio.h> int main(void) { printf("%+f\n", -0.0); printf("%+f\n", +0.0); printf("%+f\n", 0.0); return 0; } to output -0.000000 +0.000000 +0.000000 PR: bin/41823 Submitted by: GOTO Kentaro <gotoken@notwork.org> Liked by: bde MFC after: 3 weeks
Notes
Notes: svn path=/head/; revision=102499
Diffstat (limited to 'lib')
-rw-r--r--lib/libc/stdio/vfprintf.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/lib/libc/stdio/vfprintf.c b/lib/libc/stdio/vfprintf.c
index 91bbe00dfbb1..1802fc7a0874 100644
--- a/lib/libc/stdio/vfprintf.c
+++ b/lib/libc/stdio/vfprintf.c
@@ -1409,13 +1409,8 @@ cvt(double value, int ndigits, int flags, char *sign, int *decpt,
ndigits++;
mode = 2; /* ndigits significant digits */
}
- if (value < 0) {
- value = -value;
- *sign = '-';
- } else
- *sign = '\000';
- digits = __dtoa(value, mode, ndigits, decpt, &dsgn, &rve,
- dtoaresultp);
+ digits = __dtoa(value, mode, ndigits, decpt, &dsgn, &rve, dtoaresultp);
+ *sign = dsgn != 0;
if ((ch != 'g' && ch != 'G') || flags & ALT) {
/* print trailing zeros */
bp = digits + ndigits;