
/*
 * getcpy.c -- copy a string in managed memory
 *
 * $Id$
 */

#include <h/mh.h>


char *
getcpy (char *str)
{
    char *cp;
    size_t len;

    if (str) {
	len = strlen(str) + 1;
	if (!(cp = malloc (len)))
	    adios (NULL, "unable to allocate string storage");
	memcpy (cp, str, len);
    } else {
	if (!(cp = malloc ((size_t) 1)))
	    adios (NULL, "unable to allocate string storage");
	*cp = NULL;
    }
    return cp;
}
