csh arithmetic bug
Wayne Mesard
mesard at bbn.com
Mon Apr 11 23:27:09 AEST 1988
>From article <23570 at ucbvax.BERKELEY.EDU>, by ph at miro.Berkeley.EDU (Paul Heckbert):
> Beware of doing arithmetic in csh, it's buggy!
>
> The command @ x = 0 - 1 + 2 sets x to -3 (should be 1)
>
> The command @ x = 0 - 1 - 2 sets x to 1 (should be -3)
>
> (same error with Sun UNIX 3.5 on Sun3 and 4.3 BSD on Vax780)
>
> csh must be parsing right-associatively by mistake!
> Division has a similar problem.
>
> It's hard to believe that a bug like this would persist for 8 years.
>
>From csh(1):
:Expressions and Operators
:[...]
: * / %
: multiplication, division, remainder (These are right
: associative, which can lead to unexpected results.
: Group combinations explicitly with parentheses.)
: + -
: addition, subtraction (also right associative)
It looks like a bug, it acts like a bug, but if it's documented...
--
unsigned *Wayne_Mesard(); MESARD at BBN.COM
BBN Labs, Cambridge, MA
More information about the Comp.bugs.4bsd.ucb-fixes
mailing list