Subject: Re: replacement for bc(1), dc(1), diff(1), and diff(3)
To: Otto Moerbeek <firstname.lastname@example.org>
From: Otto Moerbeek <email@example.com>
Date: 03/27/2005 14:11:18
On Sun, 27 Mar 2005, Otto Moerbeek wrote:
> > We haven't even begun to talk about POSIX compliance. The above tests
> > show that OpenBSD doesn't comply with the POSIX output requirement
> > that the \ in continuation numbers is also to be counted in the line
> > length. So a line of a maximum of 70 characters, the default output
> > line size, should have 69 digits and one \. OpenBSD bc has 70 digits
> > and the \.
> IMO Posix is ambiguous:
> "Very large numbers shall be split across lines with 70 characters per
> line in the POSIX locale; other locales may split at different
> character boundaries. Lines that are continued shall end with a
> backslash ( '\' )."
> I copied the behaviour from the original (4.2 iirc) BSD dc(1). Although
> dc(1) and bc(1) are completly new implementations, I tried to stay close
> to these originals. But if I'm wrong in this, I'm happy to change that.
Hmmm, I am a bit confused.. Let's count, first OpenBSD bc(1):
OpenBSD bc(1) outputs 69 digits, a backslash, followed by two digits.
Line lenght is 70.
But with GNU bc:
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
That's 68 digits, a backslash and 3 digits.
Line lenght is 69
I am not counting the newlines, as you can see.