* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*/
+#if HAVE_CONFIG_H
+# include "config.h"
+#endif
+
#include "mutt.h"
#include "mapping.h"
#include "mutt_curses.h"
}
}
-static void remove_from_rx_list (RX_LIST **l, const char *str)
+static int remove_from_rx_list (RX_LIST **l, const char *str)
{
RX_LIST *p, *last = NULL;
+ int rv = -1;
if (mutt_strcmp ("*", str) == 0)
+ {
mutt_free_rx_list (l); /* ``unCMD *'' means delete all current entries */
+ rv = 0;
+ }
else
{
p = *l;
else
(*l) = p->next;
FREE (&p);
+ rv = 0;
}
else
{
}
}
}
+ return (rv);
}
static int parse_unignore (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err)
static int parse_alternates (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err)
{
_alternates_clean();
- return parse_rx_list (buf, s, data, err);
+ do
+ {
+ mutt_extract_token (buf, s, 0);
+ remove_from_rx_list (&UnAlternates, buf->data);
+
+ if (add_to_rx_list (&Alternates, buf->data, REG_ICASE, err) != 0)
+ return -1;
+ }
+ while (MoreArgs (s));
+
+ return 0;
}
static int parse_unalternates (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err)
{
_alternates_clean();
- return parse_rx_unlist (buf, s, data, err);
+ do
+ {
+ mutt_extract_token (buf, s, 0);
+ remove_from_rx_list (&Alternates, buf->data);
+
+ if (mutt_strcmp (buf->data, "*") &&
+ add_to_rx_list (&UnAlternates, buf->data, REG_ICASE, err) != 0)
+ return -1;
+
+ }
+ while (MoreArgs (s));
+
+ return 0;
}
static int parse_spam_list (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err)
return 0;
}
+static int parse_lists (BUFFER *buf, BUFFER *s, unsigned long data, 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;
+}
static int parse_unlists (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err)
{
do
{
mutt_extract_token (buf, s, 0);
- remove_from_rx_list (&MailLists, buf->data);
remove_from_rx_list (&SubscribedLists, buf->data);
+ remove_from_rx_list (&MailLists, buf->data);
+
+ if (mutt_strcmp (buf->data, "*") &&
+ add_to_rx_list (&UnMailLists, buf->data, REG_ICASE, err) != 0)
+ return -1;
}
while (MoreArgs (s));
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 0;
}
+
+static int parse_unsubscribe (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err)
+{
+ do
+ {
+ mutt_extract_token (buf, s, 0);
+ remove_from_rx_list (&SubscribedLists, buf->data);
+
+ if (mutt_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, BUFFER *err)
{
{
t = time (0);
setbuf (debugfile, NULL); /* don't buffer the debugging output! */
- fprintf (debugfile, "Mutt %s started at %s.\nDebugging at level %d.\n\n",
+ fprintf (debugfile, "Mutt-ng %s started at %s.\nDebugging at level %d.\n\n",
MUTT_VERSION, asctime (localtime (&t)), debuglevel);
}
}