void InitList( void )
{
    if ( !(head = (ListElm *)malloc(sizeof(ListElm))) ) 
        abort();
    head->next = 0;
}

char *DupString( char *str )
{
   char *nstr;
   if ( !(nstr = (char *)malloc( strlen(str) + 1 )) )
        abort();
   strcpy( nstr, str );
   return nstr;
}
