From: Ton v. O. <tvo...@us...> - 2007-08-22 19:39:05
|
Update of /cvsroot/easycalc/easycalc/mlib In directory sc8-pr-cvs17:/tmp/cvs-serv2636/mlib Modified Files: stack.c Log Message: One more fix for proper signed integer arithmetic. Index: stack.c =================================================================== RCS file: /cvsroot/easycalc/easycalc/mlib/stack.c,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -d -r1.39 -r1.40 *** stack.c 22 Aug 2007 19:24:03 -0000 1.39 --- stack.c 22 Aug 2007 19:38:54 -0000 1.40 *************** *** 339,360 **** cplxarg = (Complex *) arg1; cplxarg->imag = 0.0; ! if (tmpitem.type==complex) *cplxarg = *(tmpitem.u.cplxval); ! else if (tmpitem.type==real) cplxarg->real = tmpitem.u.realval; ! else if (tmpitem.type==integer) ! cplxarg->real = tmpitem.u.intval; else err = c_badarg; } else if (reqtype == real) { ! if (tmpitem.type==real) ! *((double *)arg1)=tmpitem.u.realval; ! else if (tmpitem.type==integer) ! *((double *)arg1)=tmpitem.u.intval; ! else if (tmpitem.type==complex) { if (IS_ZERO(tmpitem.u.cplxval->imag)) ! *((double *)arg1)=tmpitem.u.cplxval->real; else ! err=c_badarg; } else err = c_badarg; --- 339,360 ---- cplxarg = (Complex *) arg1; cplxarg->imag = 0.0; ! if (tmpitem.type == complex) *cplxarg = *(tmpitem.u.cplxval); ! else if (tmpitem.type == real) cplxarg->real = tmpitem.u.realval; ! else if (tmpitem.type == integer) ! cplxarg->real = (Int32)tmpitem.u.intval; else err = c_badarg; } else if (reqtype == real) { ! if (tmpitem.type == real) ! *((double *)arg1) = tmpitem.u.realval; ! else if (tmpitem.type == integer) ! *((double *)arg1) = (Int32)tmpitem.u.intval; ! else if (tmpitem.type == complex) { if (IS_ZERO(tmpitem.u.cplxval->imag)) ! *((double *)arg1) = tmpitem.u.cplxval->real; else ! err = c_badarg; } else err = c_badarg; *************** *** 376,380 **** realarg = tmpitem.u.realval; if (-2147483648.0 <= realarg && realarg <= 2147483647.0) { ! *((Int32 *)arg1)= tmpitem.u.realval; } else --- 376,380 ---- realarg = tmpitem.u.realval; if (-2147483648.0 <= realarg && realarg <= 2147483647.0) { ! *((Int32 *)arg1) = tmpitem.u.realval; } else |