#include "name.h" #include "stringops.h" name_list *name_add (name_list *m, char *name) { name_list *new, *list; #ifdef FUNCTIONS puts ("**name_add"); #endif new = allocate (name_list); new->name = name; new->next = NULL; if (m) { list = m; while (m->next) m = m->next; m->next = new; return list; } else return new; } name_list *name_parse (char *i) { name_list *l = NULL; char *start, *end; #ifdef FUNCTIONS puts ("**name_parse"); #endif for (start = i; *start != '\0'; start = end + 2) { char *name; for (end = start; (*end != '\0') && (*end != '|'); end++); end--; l = name_add (l, clip (start, end)); start = end + 1; } return l; } void name_save (name_list *l, FILE *f) { #ifdef FUNCTIONS puts ("**name_save"); #endif while (l) { fprintf (f, "%s", l->name); if (l->next) putc ('|', f); l = l->next; } putc ('\n', f); } void name_burn (name_list *m) { #ifdef FUNCTIONS puts ("**name_burn"); #endif if (m) { name_burn (m->next); free (m->name); free (m); } } int name_test (name_list *l, char *line) { #ifdef FUNCTIONS puts ("**name_test"); #endif while (l) { if (find (line, l->name)) return 1; l = l->next; } return 0; }