globle double SetProfilePercentThresholdCommand( void *theEnv) { DATA_OBJECT theValue; double newThreshold; if (EnvArgCountCheck(theEnv,"set-profile-percent-threshold",EXACTLY,1) == -1) { return(ProfileFunctionData(theEnv)->PercentThreshold); } if (EnvArgTypeCheck(theEnv,"set-profile-percent-threshold",1,INTEGER_OR_FLOAT,&theValue) == FALSE) { return(ProfileFunctionData(theEnv)->PercentThreshold); } if (GetType(theValue) == INTEGER) { newThreshold = (double) DOToLong(theValue); } else { newThreshold = (double) DOToDouble(theValue); } if ((newThreshold < 0.0) || (newThreshold > 100.0)) { ExpectedTypeError1(theEnv,"set-profile-percent-threshold",1, "number in the range 0 to 100"); return(-1.0); } return(SetProfilePercentThreshold(theEnv,newThreshold)); }
void SetProfilePercentThresholdCommand( Environment *theEnv, UDFContext *context, UDFValue *returnValue) { UDFValue theValue; double newThreshold; if (! UDFFirstArgument(context,NUMBER_BITS,&theValue)) { return; } newThreshold = CVCoerceToFloat(&theValue); if ((newThreshold < 0.0) || (newThreshold > 100.0)) { UDFInvalidArgumentMessage(context,"number in the range 0 to 100"); returnValue->floatValue = CreateFloat(theEnv,-1.0); } else { returnValue->floatValue = CreateFloat(theEnv,SetProfilePercentThreshold(theEnv,newThreshold)); } }