#include <stdio.h>
#include <stdlib.h>
#include "dprints.h"		/* for dprints */
#include "gribfuncs.h"		/* prototypes */

/*
*********************************************************************
* A. FUNCTION:  upd_child_errmsg
*       Tacks the given function name in front of the error message array
*       to show which level of the Nested Function calls the error 
*       occured at;
*
*    INTERFACE:
*       void    upd_child_errmsg (parent, errmsg)
*
*    ARGUMENTS (I=input, O=output, I&O=input and output):
*       (I)   char *parent;    name of caller function
*       (I&O) char *errmsg;    already contain error message upon entry;
*                              will get name of parent tacked in front of 
*                              existing array content;
*    RETURN:   none;
*********************************************************************
*/
#if PROTOTYPE_NEEDED
void	upd_child_errmsg (char *parent, char *errmsg)
#else
void	upd_child_errmsg (parent, errmsg)
char *parent; 
char *errmsg;
#endif
{
char temp[500], *func="upd_child_errmsg";

    DPRINT1 ("Entering %s\n", func);
    DPRINT2 ("Tacking '%s' in front of '%s'\n", parent, errmsg);
/*
*
* A.1       IF (the error message is null) THEN
*               RETURN error msg "FuncName:  no Error msg avail!"
*           ELSE
*               RETURN error msg "FuncName: " + errmsg
*           ENDIF
*/
    if (errmsg[0]=='\0') 
	 sprintf (errmsg, "%s:  no Error msg avail!\n", parent); 
    else {
	 sprintf (temp, "%s: %s", parent, errmsg);
         strncpy (errmsg, temp, 500);
	}

    DPRINT1 ("ErrMsg is now-> %s\n", errmsg);
    DPRINT1 ("Leaving %s\n", func);
/*
*  END OF FUNCTION
*/
}