diff --git a/src/modules/_math/math.c b/src/modules/_math/math.c index 51c4e0eed14bb4e9e7ebaf5ddda8cdfdb16c7236..81d18c0a5c0eb5398a1e7b7a78fb7cf7bdb2db1a 100644 --- a/src/modules/_math/math.c +++ b/src/modules/_math/math.c @@ -684,7 +684,7 @@ PIKE_MODULE_INIT /* function(int|float:float) */ ADD_EFUN("round",f_round,tFunc(tNUM,tFlt),0); -#define CMP_TYPE \ +#define MINMAX_TYPE \ tOr4(tIfnot(tFuncV(tNone,tNot(tString),tMix), \ tFuncV(tString,tString,tString)), \ tFunc(tVoid,tInt0), \ @@ -692,10 +692,11 @@ PIKE_MODULE_INIT tFuncV(tSetvar(0,tOr(tInt,tFloat)), \ tSetvar(1,tOr(tInt,tFloat)),tOr(tVar(0),tVar(1)))),\ tIfnot(tFuncV(tNone,tNot(tOr(tObj,tMix)),tMix), \ - tFuncV(tMix,tMix,tMix))) + tFuncV(tSetvar(0,tOr(tObj,tMix)), \ + tSetvar(1,tOr(tObj,tMix)),tOr(tVar(0),tVar(1))))) - ADD_EFUN("max",f_max,CMP_TYPE,0); - ADD_EFUN("min",f_min,CMP_TYPE,0); + ADD_EFUN("max", f_max, MINMAX_TYPE, 0); + ADD_EFUN("min", f_min, MINMAX_TYPE, 0); ADD_EFUN("limit",f_limit, tFunc(tSetvar(0,tOr3(tFlt,tInt,tObj))