/* DEC *SubtractDoubleFromDecimal(pDst,pSrc1,l) * * ARGUMENT * pDst is a pointer to the destination DEC structure. * pSrc1 is a ptr to the source1 DEC structure. * l is the double to be subtract from pSrc1 * * DESCRIPTION * Subtracts the value 'l' from pSrc1 and puts the result * in dest DEC structure. * * SIDE EFFECTS * On overflow, the dest value is destroyed. * * RETURNS * Returns a pointer to the dest structure unless overflow, * when it returns a GM_NULL. On error, the error * is in wGMError, unless an error was already there. * * POSSIBLE ERROR CODES * * GM_NULLPOINTER * GM_NOMEMORY * GM_OVERFLOW * GM_CNVRE * * AUTHOR * Andy Anderson 08-JUL-1987 1500 * Copyright (C) 1987-1990 Greenleaf Software Inc. All rights reserved. * * MODIFICATIONS * */ #include #include "gm.h" #include "gmsystem.h" DEC *SubtractDoubleFromDecimal(pDst,pSrc1,l) DEC *pDst,*pSrc1; double l; { DEC decS2, *pSrc2=&decS2, *pd; _MacStart(GM_SUBDFD); /* Convert the double to a DEC */ pSrc2=ConvDoubleToDecimal(pSrc2,l); if (!pSrc2) { if (pDst) _MacDCopy(pDst, pSrc1); _MacRet(GM_NULL); } pd = SubtractDecimal(pDst,pSrc1,pSrc2); _MacRet(pd); }