aboutsummaryrefslogtreecommitdiff
path: root/src/base/fmt
diff options
context:
space:
mode:
Diffstat (limited to 'src/base/fmt')
-rw-r--r--src/base/fmt/do.c6
-rw-r--r--src/base/fmt/float.c12
-rw-r--r--src/base/fmt/open.c5
-rw-r--r--src/base/fmt/rules.mk3
-rw-r--r--src/base/fmt/test.c2
5 files changed, 12 insertions, 16 deletions
diff --git a/src/base/fmt/do.c b/src/base/fmt/do.c
index bd2e65c..71b005e 100644
--- a/src/base/fmt/do.c
+++ b/src/base/fmt/do.c
@@ -363,9 +363,9 @@ fmtstring(fmt·State *io)
static int
fmterror(fmt·State *io)
{
- char *s;
- s = strerror(errno);
- return copystring(io, s);
+ int c;
+ c = va_arg(io->args, int);
+ return copystring(io, sys·errormsg(c));
}
static int
diff --git a/src/base/fmt/float.c b/src/base/fmt/float.c
index 63ea80f..8a42dfc 100644
--- a/src/base/fmt/float.c
+++ b/src/base/fmt/float.c
@@ -529,7 +529,7 @@ fmtstrtod(char *as, char **aas)
ex = -ex;
dp += ex;
if(dp < -Maxe){
- errno = ERANGE;
+ /* errno = ERANGE; */
goto ret0; /* underflow by exp */
} else
if(dp > +Maxe)
@@ -617,7 +617,7 @@ retnan:
retinf:
/* Unix strtod requires these. Plan 9 would return Inf(0) or Inf(-1). */
- errno = ERANGE;
+ /* errno = ERANGE; */
if(flag & Fsign)
return -HUGE_VAL;
return HUGE_VAL;
@@ -630,7 +630,7 @@ out:
d = -d;
d = ldexp(d, bp - Prec*Nbits);
if(d == 0) /* underflow */
- errno = ERANGE;
+ /* errno = ERANGE; */
return d;
}
@@ -694,12 +694,10 @@ fmtexp(char *p, int e, int ucase)
static void
dtoa(double f, char *s, int *exp, int *neg, int *len)
{
- int c, d, e2, e, ee, i, ndigit, oerrno;
+ int c, d, e2, e, ee, i, ndigit;
char buf[NSIGNIF+10];
double g;
- oerrno = errno;
-
*neg = 0;
if(f < 0){
f = -f;
@@ -785,7 +783,7 @@ dtoa(double f, char *s, int *exp, int *neg, int *len)
*exp = e;
*len = ndigit;
- errno = oerrno;
+ /* errno = oerrno; */
}
diff --git a/src/base/fmt/open.c b/src/base/fmt/open.c
index 8aadef5..b6829bb 100644
--- a/src/base/fmt/open.c
+++ b/src/base/fmt/open.c
@@ -3,11 +3,12 @@
static int
flush(fmt·State *io)
{
- int n, fd;
+ int fd;
+ intptr n;
fd = (uintptr)io->file;
n = io->buffer.cur - io->buffer.beg;
- if(n && write(fd, io->buffer.beg, n) != n)
+ if(n && sys·write(fd, n, io->buffer.beg, &n))
return -1;
io->buffer.cur = io->buffer.beg;
diff --git a/src/base/fmt/rules.mk b/src/base/fmt/rules.mk
index fdfdac0..8effa9e 100644
--- a/src/base/fmt/rules.mk
+++ b/src/base/fmt/rules.mk
@@ -17,5 +17,4 @@ SRCS_$(d)+=\
$(d)/fmt/panic.c\
$(d)/fmt/write.c
-CHECK_$(d)+=\
- $(d)/fmt/test.c
+TEST += $(TST_DIR)/base/fmt/test
diff --git a/src/base/fmt/test.c b/src/base/fmt/test.c
index d81a62e..73f5e7c 100644
--- a/src/base/fmt/test.c
+++ b/src/base/fmt/test.c
@@ -1,7 +1,5 @@
#include <u.h>
#include <base.h>
-#include <libutf.h>
-#include <libfmt.h>
typedef struct Complex
{