summaryrefslogtreecommitdiffstats
path: root/buffy.c
diff options
context:
space:
mode:
authorNicolas Rachinsky <nicolas@dauerreden.de>2002-09-09 19:29:23 +0000
committerNicolas Rachinsky <nicolas@dauerreden.de>2002-09-09 19:29:23 +0000
commit9786ef81a8c5fed02075ec51d1fbf8e15e8c215b (patch)
tree025b3b28cc769d432475496ce6f70d363b826814 /buffy.c
parentf4af8ea13ba216e572b5d0c3741076bd589e46c2 (diff)
An unmailboxes command. #1311.
Diffstat (limited to 'buffy.c')
-rw-r--r--buffy.c27
1 files changed, 26 insertions, 1 deletions
diff --git a/buffy.c b/buffy.c
index 0a15c92a..660075d8 100644
--- a/buffy.c
+++ b/buffy.c
@@ -162,7 +162,7 @@ void mutt_update_mailbox (BUFFY * b)
int mutt_parse_mailboxes (BUFFER *path, BUFFER *s, unsigned long data, BUFFER *err)
{
- BUFFY **tmp;
+ BUFFY **tmp,*tmp1;
char buf[_POSIX_PATH_MAX];
#ifdef BUFFY_SIZE
struct stat sb;
@@ -172,6 +172,19 @@ int mutt_parse_mailboxes (BUFFER *path, BUFFER *s, unsigned long data, BUFFER *e
{
mutt_extract_token (path, s, 0);
strfcpy (buf, path->data, sizeof (buf));
+
+ if(data == M_UNMAILBOXES && mutt_strcmp(buf,"*") == 0)
+ {
+ for (tmp = &Incoming; *tmp;)
+ {
+ safe_free((void **)&((*tmp)->path));
+ tmp1=(*tmp)->next;
+ safe_free((void **)tmp);
+ *tmp=tmp1;
+ }
+ return 0;
+ }
+
mutt_expand_path (buf, sizeof (buf));
/* Skip empty tokens. */
@@ -184,6 +197,18 @@ int mutt_parse_mailboxes (BUFFER *path, BUFFER *s, unsigned long data, BUFFER *e
break;
}
+ if(data == M_UNMAILBOXES)
+ {
+ if(*tmp)
+ {
+ safe_free((void **)&((*tmp)->path));
+ tmp1=(*tmp)->next;
+ safe_free((void **)tmp);
+ *tmp=tmp1;
+ }
+ continue;
+ }
+
if (!*tmp)
{
*tmp = (BUFFY *) safe_calloc (1, sizeof (BUFFY));