Listing 3 The savesym Function

SYMBOL *savesym(SYMBOL *s)
{
int size;
SYMBOL *p;

size = sizeof (SYMBOL) + strlen(s->symbol);
#ifdef LHEAP
p = sbrk(size);
if(p == (void *)(-1)) return(NULL);
#else
p = malloc(size);
#endif
if(p) memcpy(p,s,size);
return(p);
}