X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=muttlib.c;h=676b9225e22c4fef76f5a640c2bd2d1de09c8b96;hp=fbd224377479e10e4f1934e44d0dfbd1cfaadb26;hb=05dc13941fb8fcaf3a95f0d34a3021e3aa73b3f2;hpb=841934011451205d8295ac955486f06c317fdf15 diff --git a/muttlib.c b/muttlib.c index fbd2243..676b922 100644 --- a/muttlib.c +++ b/muttlib.c @@ -27,6 +27,10 @@ #include "mutt_crypt.h" +#include "lib/mem.h" +#include "lib/intl.h" +#include "lib/str.h" + #include #include #include @@ -1336,7 +1340,7 @@ BUFFER *mutt_buffer_init (BUFFER * b) return NULL; } else { - safe_free (b->data); + FREE(&b->data); } memset (b, 0, sizeof (BUFFER)); return b; @@ -1433,40 +1437,6 @@ const char *mutt_make_version (void) return vstring; } -REGEXP *mutt_compile_regexp (const char *s, int flags) -{ - REGEXP *pp = safe_calloc (sizeof (REGEXP), 1); - - pp->pattern = safe_strdup (s); - pp->rx = safe_calloc (sizeof (regex_t), 1); - if (REGCOMP (pp->rx, NONULL (s), flags) != 0) - mutt_free_regexp (&pp); - - return pp; -} - -void mutt_free_regexp (REGEXP ** pp) -{ - FREE (&(*pp)->pattern); - regfree ((*pp)->rx); - FREE (&(*pp)->rx); - FREE (pp); -} - -void mutt_free_rx_list (RX_LIST ** list) -{ - RX_LIST *p; - - if (!list) - return; - while (*list) { - p = *list; - *list = (*list)->next; - mutt_free_regexp (&p->rx); - FREE (&p); - } -} - void mutt_free_spam_list (SPAM_LIST ** list) { SPAM_LIST *p; @@ -1476,29 +1446,12 @@ void mutt_free_spam_list (SPAM_LIST ** list) while (*list) { p = *list; *list = (*list)->next; - mutt_free_regexp (&p->rx); - safe_free (&p->template); - FREE (&p); + rx_free (&p->rx); + FREE(&p->template); + FREE(&p); } } -int mutt_match_rx_list (const char *s, RX_LIST * l) -{ - if (!s) - return 0; - - for (; l; l = l->next) { - if (regexec (l->rx->rx, s, (size_t) 0, (regmatch_t *) 0, (int) 0) == 0) { - dprint (5, - (debugfile, "mutt_match_rx_list: %s matches %s\n", s, - l->rx->pattern)); - return 1; - } - } - - return 0; -} - int mutt_match_spam_list (const char *s, SPAM_LIST * l, char *text, int x) { static regmatch_t *pmatch = NULL;