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