#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;
}