void undef (char *name)
{
        struct nlist *curr, *last;
        unsigned hashval;

        hashval = hash(name);
        last = curr = hashtab[hashval];
        while (curr != NULL && strcmp(name, curr->name)!= 0)
        {
                printf("while loop\n");
                last = curr;
                curr = curr->next;
                printf("last = %x, curr = %x\n", last, curr);
        }

        printf("after loop\n");
        if (curr == hashtab[hashval])
        {
                hashtab[hashval] = NULL;
                return;
        }
        if (curr)
        {
                last->next = curr->next;
                free ((void *) curr->name);
                free ((void *) curr->defn);
                free (curr);
        }
}
