/* DEC *SubtractAscii(pDst,pSrc1,pSrc2) * * ARGUMENT * pDst is a pointer to the destination DEC structure * pSrc1 is a pointer to source1 ASCII string * pSrc2 is a pointer to source2 ASCII string * * DESCRIPTION * Subtracts the value in pSrc2 (ASCII) to the value in pSrc1 (ASCII) * and puts the result in pDst DEC structure * * SIDE EFFECTS * On overflow, the dest structure is unchanged * * RETURNS * Returns a pointer to the dest structure unless overflow, * otherwise, returns a GM_NULL(a C false). On error, the error * is in wGMError, unless an error was already there. * * POSSIBLE ERROR CODES * * GM_NULLSTRING * GM_NAN * GM_CNVRE * GM_CNVRW * GM_OVERFLOW * * AUTHOR * Andy Anderson 20-Feb-87 17:40 * Copyright (C) 1987-1990 Greenleaf Software Inc. All rights reserved. * * * MODIFICATIONS * */ #include #include "gm.h" #include "gmsystem.h" DEC *SubtractAscii(pDst,pSrc1,pSrc2) DEC *pDst; char *pSrc1,*pSrc2; { DEC ds1,ds2; DEC *ps1,*ps2,*pd; _MacStart(GM_SUBSTR); ps1=&ds1; ps2=&ds2; /* convert ascii to DEC */ ps1=ConvAsciiToDecimal(ps1,pSrc1); if (!ps1) _MacRet(GM_NULL); ps2=ConvAsciiToDecimal(ps2,pSrc2); if (!ps2) _MacRet(GM_NULL); pd = SubtractDecimal(pDst,ps1,ps2); _MacRet(pd); }