char* errbuf, ssize_t errlen) {
rx_t* p = NULL;
regex_t* rx = NULL;
- int flags = 0, e = 0, not = 0;
+ int flags = 0, e = 0, neg = 0;
char* s = NULL;
if (!dst)
s = (char*) val;
if (m_strcmp(dst->option, "mask") == 0 && *s == '!') {
- not = 1;
+ neg = 1;
s++;
}
m_strreplace(&p->pattern, val);
p->rx = rx;
- p->not = not;
+ p->neg = neg;
if (m_strcmp(dst->option, "reply_regexp") == 0)
mutt_adjust_all_subjects ();
(*list)->data = m_strdup(str);
}
-static int
-add_to_rx_list(rx_t **list, const char *s, int flags, BUFFER *err)
-{
- rx_t *rx;
-
- if (m_strisempty(s))
- return 0;
-
- if (rx_lookup(list, s))
- return 0;
-
- rx = rx_compile(s, flags);
- if (!rx) {
- snprintf(err->data, err->dsize, "Bad regexp: %s\n", s);
- return -1;
- }
-
- rx_list_append(list, rx);
- return 0;
-}
-
static void remove_from_list(string_list_t **l, const char *str)
{
if (!m_strcmp("*", str)) {
}
}
-static int remove_from_rx_list(rx_t **l, const char *str)
-{
- if (m_strcmp("*", str) == 0) {
- rx_list_wipe(l);
- return 0;
- }
-
- l = rx_lookup(l, str);
- if (*l) {
- rx_t *r = rx_list_pop(l);
- rx_delete(&r);
- return 0;
- }
-
- return -1;
-}
-
static int parse_unignore (BUFFER * buf, BUFFER * s,
unsigned long data __attribute__ ((unused)),
BUFFER * err __attribute__ ((unused)))
return 0;
}
-static void _alternates_clean (void)
-{
- int i;
-
- if (Context && Context->msgcount) {
- for (i = 0; i < Context->msgcount; i++)
- Context->hdrs[i]->recip_valid = 0;
- }
-}
-
static int parse_unlist (BUFFER * buf, BUFFER * s, unsigned long data,
BUFFER * err __attribute__ ((unused)))
{
return 0;
}
-static int parse_lists (BUFFER * buf, BUFFER * s,
- unsigned long data __attribute__ ((unused)),
- BUFFER * err)
-{
- do {
- mutt_extract_token (buf, s, 0);
- remove_from_rx_list (&UnMailLists, buf->data);
-
- if (add_to_rx_list (&MailLists, buf->data, REG_ICASE, err) != 0)
- return -1;
- }
- while (MoreArgs (s));
-
- return 0;
-}
-
/* always wise to do what someone else did before */
static void _attachments_clean (void) {
int i;
return parse_unattach_list(buf, s, listp, err);
}
-static int parse_unlists (BUFFER * buf, BUFFER * s,
- unsigned long data __attribute__ ((unused)),
- BUFFER * err __attribute__ ((unused)))
-{
- do {
- mutt_extract_token (buf, s, 0);
- remove_from_rx_list (&SubscribedLists, buf->data);
- remove_from_rx_list (&MailLists, buf->data);
-
- if (m_strcmp(buf->data, "*") &&
- add_to_rx_list (&UnMailLists, buf->data, REG_ICASE, err) != 0)
- return -1;
- }
- while (MoreArgs (s));
-
- return 0;
-}
-
-static int parse_subscribe (BUFFER * buf, BUFFER * s, unsigned long data __attribute__ ((unused)),
- BUFFER * err)
-{
- do {
- mutt_extract_token (buf, s, 0);
- remove_from_rx_list (&UnMailLists, buf->data);
- remove_from_rx_list (&UnSubscribedLists, buf->data);
-
- if (add_to_rx_list (&MailLists, buf->data, REG_ICASE, err) != 0)
- return -1;
- if (add_to_rx_list (&SubscribedLists, buf->data, REG_ICASE, err) != 0)
- return -1;
- }
- while (MoreArgs (s));
-
- return 0;
-}
-
-static int parse_unsubscribe (BUFFER * buf, BUFFER * s,
- unsigned long data __attribute__ ((unused)),
- BUFFER * err __attribute__ ((unused)))
-{
- do {
- mutt_extract_token (buf, s, 0);
- remove_from_rx_list (&SubscribedLists, buf->data);
-
- if (m_strcmp(buf->data, "*") &&
- add_to_rx_list (&UnSubscribedLists, buf->data, REG_ICASE, err) != 0)
- return -1;
- }
- while (MoreArgs (s));
-
- return 0;
-}
-
static int parse_unalias (BUFFER * buf, BUFFER * s,
unsigned long data __attribute__ ((unused)),
BUFFER * err __attribute__ ((unused)))