From 9024ae971142bebcb2b577b86c2f95e81ca0e023 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net> Date: Thu, 11 Sep 1997 17:07:28 -0700 Subject: [PATCH] module on negative numbers fixed Rev: src/operators.c:1.17 --- src/operators.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/operators.c b/src/operators.c index 65fe8efb76..a634e4d7ed 100644 --- a/src/operators.c +++ b/src/operators.c @@ -5,7 +5,7 @@ \*/ #include <math.h> #include "global.h" -RCSID("$Id: operators.c,v 1.16 1997/08/30 18:35:48 grubba Exp $"); +RCSID("$Id: operators.c,v 1.17 1997/09/12 00:07:28 hubbe Exp $"); #include "interpret.h" #include "svalue.h" #include "multiset.h" @@ -1061,12 +1061,12 @@ void o_mod(void) { sp[-1].u.integer %= sp[0].u.integer; }else{ - sp[-1].u.integer=sp[0].u.integer+(sp[-1].u.integer % -sp[0].u.integer); + sp[-1].u.integer=((sp[-1].u.integer+~sp[0].u.integer)%-sp[0].u.integer)-~sp[0].u.integer; } }else{ if(sp[0].u.integer>=0) { - sp[-1].u.integer=sp[0].u.integer-(-sp[-1].u.integer % sp[0].u.integer); + sp[-1].u.integer=sp[0].u.integer+~((~sp[-1].u.integer) % sp[0].u.integer); }else{ sp[-1].u.integer=-(-sp[-1].u.integer % -sp[0].u.integer); } -- GitLab