Date: Sat, 27 Oct 2001 23:48:22 +0200 (CEST) From: System Operator <operator%disp@citylink.dinoex.sub.de> To: freebsd-bugs@freebsd.org Subject: handling figures above 2/4 billions Message-ID: <200110272148.f9RLmMj14875@disp.oper.dinoex.org>
next in thread | raw e-mail | index | archive | help
Hello together,
after upgrading from 2.2.1 to 4.x I noticed all my backup-shellscripts
were broken. (These are kind of a simple tape-library, self-written).
Obviousely, the bytecount on tapes reaches well beyond 2G/4G.
On 2.2.1, expr could not handle such figures. But awk could. awk
strangely changed from left-justified to right-justified when
figures went beyond 2G, but the math was correct.
Now with 4.x RELEASE, awk does something much more stupid:
$ awk 'END{printf "%-.20d\n", 4200000000}' < /dev/null
00000000004200000000
$ awk 'END{printf "%-.20d\n", 4300000000}' < /dev/null
4300000000
This is not useful at all.
( %-.20d is the only formatstring that prevents awk from automati-
cally switching to scientific float representation.)
As far as I see, expr is now capable of handling such large figures.
So possibly expr is the way to go on 4.x.
I will not file a bug-report because I do not know if awk is
designed to do 64bit-math at all (or if it just worked by chance
in 2.2.1). I also do not know what kind of sense could be seen
in this zero-filling (if any).
So whoever might know why this was changed in awk (or in the
underlying lib?), may just drop me a note.
rgds,PMc
P.S. I will currently not search for this myself, because getting
my backup-engine running again is much more vital to me.
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200110272148.f9RLmMj14875>
