Alignify.
Make the whatever-type data in struct name_list a void * rather than a
char *.  In the pre-ANSI days that this was written, char * was the
standard do-anything type, but that was another millennium.
Change AddToList() to expect a void * for that ptr, since that's what
it is now.
Reap a bunch of (char *) casts in AddToList() calls.
Convert the type of the ptr value in struct name_list to a void *,
since that's what generic points should be this century (and the last
decade of last century, for that matter).