}
void
-rxpd_file_delete (PSplay f)
+rxpd_file_delete (struct rxpd_file* self)
{
- if (f)
+ if (self)
{
- struct rxpd_file* file = (struct rxpd_file*)f;
- LLIST_WHILE_HEAD (&file->rules, n)
+ LLIST_WHILE_HEAD (&self->rules, n)
{
struct rxpd_rule* node = (struct rxpd_rule*)n;
rxpd_rule_delete (node);
}
- free ((void*)file->filename);
- free (f);
+ psplay_remove (&self->base->files, &self->node);
+ free ((void*)self->filename);
+ free (self);
}
}
LLIST_FOREACH (&self->rules, n)
{
struct rxpd_rule* node = (struct rxpd_rule*)n;
- fprintf (f, "%s\n", node->string);
+ if (node->atime != (time_t)-1)
+ fprintf (f, "%ld:%s\n", node->atime, node->string);
+ else if (*node->string != '#')
+ fprintf (f, ":%s\n", node->string);
+ else
+ fprintf (f, "%s\n", node->string);
}
fclose (f);