On Fri Mar  1 17:54:53 EST 2013, paul-a.patie...@polymtl.ca wrote:
> Plan9port's implementation of fltfmt.c seems
> different enough to me that it isn't possible to
> simply take the fix from there and add it to
> plan9. Perhaps I'm missing something.
> 
> The g verb already acts differently in plan9port
> and native plan 9: print("%g\n", 0.1) prints .1 in
> plan 9 and 0.1 in plan9port. I don't why they're
> different, but the former behaviour is unfortunate
> for the native port of awk I am completing
> (started by boyd).
> 
> Others are of course welcome to come up with fixes
> for this problem.

here are all the places where %g is used with a prec.
i think this should be trivial to fix.  we just
need to agree to fix it.  i would vote for fixing it.

- erik

---
chula; g '%([# +]|-)?([*0-9]+)?(\.[*0-9]+)g' /sys/src|grep -v printf|grep -v 
'/awk/|/gs/' 
/sys/src/ape/lib/fmt/test.c:34:         print("%2.18g\n", 1.0);
/sys/src/cmd/aux/msexceltables.c:286:                                   
Bprint(bo, "%-*.*g", min, max, c->number);
/sys/src/cmd/aux/vga/main.c:331:                        trace("refresh %.1g\n", 
rr);
/sys/src/cmd/aux/vga/main.c:333:                                fprint(2, 
"reducing %.1g to 85Hz\n", rr);
/sys/src/cmd/du.c:65:           print("%.6g%s\t%q\n", val, pfxes[scale], name);
/sys/src/cmd/du.c:67:           print("%.6g\t%q\n", (double)amt/unit, name);
/sys/src/cmd/hoc/code.c:586:    print("%.12g\n", d.val);
/sys/src/cmd/hoc/code.c:595:    print("%.12g ", d.val);
/sys/src/cmd/ip/gping.c:936:            seprint(g->msg+n, e, " %3.3g", 
f/1000000);
/sys/src/cmd/nettest.c:143:             print("%llud bytes in %g s @ %.2g MB/s 
(%ldms; limit %.2g MB/s)\n", i, delta, ratemb, sleepms, maxr);
/sys/src/cmd/nettest.c:146:             print("%llud bytes in %g s @ %.2g MB/s 
(0ms)\n", i, delta, ratemb);
/sys/src/games/mp3enc/timestatus.c:153:               "%9.4f" SPEED_CHAR "|"  : 
 "%#9.5g" SPEED_CHAR "|",
/sys/src/libmach/machdata.c:209:        return snprint(buf, n, "%.18g", fr);
/sys/src/libmach/machdata.c:242:        return snprint(buf, n, "%.9g", fr);
/sys/src/libstdio/dtoa.c:8:  *  printed as %.17g.  Then atof(s) is exactly y.

Reply via email to