#ifndef EXTERNAL_H #define EXTERNAL_H #define EXTERNAL_LIST_NEW(x) { \ if (x == NULL) \ x = xmalloc(sizeof(struct EXTERNAL_LIST_LIST)); \ else { \ while (x->next != NULL) x = x->next; \ x->next = xmalloc(sizeof(struct EXTERNAL_LIST_LIST)); \ x = x->next; \ } \ x->me = NULL; \ x->he = NULL; \ x->fe = NULL; \ x->exec = NULL; \ x->mime = NULL; \ x->host = NULL; \ x->file = NULL; \ x->newmime = NULL; \ x->next = NULL; \ }; #define EXTERNAL_LIST_INSERT(x, a, b, c, d, e) { \ if (a != NULL) {\ x->me = reg_compile(a, REGFLAGS | REG_NOSUB); \ x->mime = xstrdup(a); \ } \ if (b != NULL) { \ x->he = reg_compile(b, REGFLAGS | REG_NOSUB); \ x->host = xstrdup(b); \ } \ if (c != NULL) { \ x->fe = reg_compile(c, REGFLAGS | REG_NOSUB); \ x->file = xstrdup(c); \ } \ if (d != NULL) \ x->exec = xstrdup(d); \ if (e != NULL) \ x->newmime = xstrdup(e); \ }; #endif /* EXTERNAL_H */