1/* 2 * tclWinMtherr.c -- 3 * 4 * This function provides a default implementation of the 5 * _matherr function for Borland C++. 6 * 7 * Copyright (c) 1995 Sun Microsystems, Inc. 8 * 9 * See the file "license.terms" for information on usage and redistribution 10 * of this file, and for a DISCLAIMER OF ALL WARRANTIES. 11 * 12 * RCS: @(#) $Id: tclWinMtherr.c,v 1.5 2002/05/31 22:20:22 dgp Exp $ 13 */ 14 15#include "tclWinInt.h" 16#include <math.h> 17 18 19/* 20 *---------------------------------------------------------------------- 21 * 22 * _matherr -- 23 * 24 * This procedure is invoked by Borland C++ when certain 25 * errors occur in mathematical functions. This procedure 26 * replaces the default implementation which generates pop-up 27 * warnings. 28 * 29 * Results: 30 * Returns 1 to indicate that we've handled the error 31 * locally. 32 * 33 * Side effects: 34 * Sets errno based on what's in xPtr. 35 * 36 *---------------------------------------------------------------------- 37 */ 38 39int 40_matherr(xPtr) 41 struct exception *xPtr; /* Describes error that occurred. */ 42{ 43 if ((xPtr->type == DOMAIN) 44#ifdef __BORLANDC__ 45 || (xPtr->type == TLOSS) 46#endif 47 || (xPtr->type == SING)) { 48 errno = EDOM; 49 } else { 50 errno = ERANGE; 51 } 52 return 1; 53} 54