/* DEC	*MultiplyDecimalByDouble(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 multiplied by pSrc1
 *
 * DESCRIPTION
 *	Multiplies the value 'l' by 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_OVERFLOW
 *	GM_UNDERFLOW
 *	GM_CNVRE
 *
 * AUTHOR
 *  Andy Anderson   08-JUL-1987	 1500
 *   Copyright (C) 1987-1990 Greenleaf Software	Inc.  All rights reserved.
 *
 * MODIFICATIONS
 *
 */

#include <stdio.h>
#include "gm.h"
#include "gmsystem.h"

DEC	*MultiplyDecimalByDouble(pDst,pSrc1,l)
DEC	*pDst,*pSrc1;
double	l;
{
	DEC	decS2, *pSrc2=&decS2, *pd;

	_MacStart(GM_MULDFD);

	/*  Convert the	double to a DEC	*/
	pSrc2=ConvDoubleToDecimal(pSrc2,l);
	if (!pSrc2)  {
		if (pDst)
			_MacDZero(pDst);
		_MacRet(GM_NULL);
	}

	pd = MultiplyDecimal(pDst,pSrc1,pSrc2);

	_MacRet(pd);
}