diff --git a/src/operators.c b/src/operators.c index 3a21b0d51f0052e715aa4497294e5d5e42dff2aa..fe9859685b8d713dbaa3c5941f00342f9cf86000 100644 --- a/src/operators.c +++ b/src/operators.c @@ -183,6 +183,7 @@ void f_add(INT32 args) } } sp-=args-1; + sp[-1].type=T_FLOAT; sp[-1].u.float_number=sum; break; } @@ -1022,7 +1023,7 @@ void init_operators() add_efun2("`/",f_divide,"function(int,int:int)|function(float|int,float:float)|function(float,int:float)|function(string,string:string*)",0,0,generate_divide); - add_efun2("`%",f_mod,"function(int,int:int)|function(float,float:float)",0,0,generate_mod); + add_efun2("`%",f_mod,"function(int,int:int)|!function(int,int:mixed)&function(int|float,int|float:float)",0,0,generate_mod); add_efun2("`!",f_not,"function(mixed:int)",0,0,generate_not); add_efun2("`~",f_compl,"function(int:int)",0,0,generate_compl);