--- maildir-mtime/PATCHES Dec 2002 17:44:54 -0000 3.6 +++ maildir-mtime/PATCHES Feb 2003 20:49:33 -0000 @@ -0,0 +1 @@ +patch-1.5.3.dw.maildir-mtime.1 --- maildir-mtime/browser.c Dec 2002 15:20:21 -0000 3.7 +++ maildir-mtime/browser.c Feb 2003 20:49:34 -0000 @@ -29,2 +29,3 @@ #endif +#include "mx.h" @@ -304,4 +305,6 @@ folder_format_str (char *dest, size_t de static void add_folder (MUTTMENU *m, struct browser_state *state, - const char *name, const struct stat *s, int new) + const char *name, const struct stat *s, BUFFY *mbuf) { + int new = (mbuf) ? mbuf->new : 0; + if (state->entrylen == state->entrymax) @@ -317,2 +320,5 @@ static void add_folder (MUTTMENU *m, str + if (mbuf && mbuf->magic == M_MAILDIR && mbuf->mtime) + s->st_mtime = mbuf->mtime; + if (s != NULL) @@ -411,3 +417,3 @@ static int examine_directory (MUTTMENU * tmp = tmp->next; - add_folder (menu, state, de->d_name, &s, (tmp) ? tmp->new : 0); + add_folder (menu, state, de->d_name, &s, tmp); } @@ -435,3 +441,3 @@ static int examine_mailboxes (MUTTMENU * { - add_folder (menu, state, tmp->path, NULL, tmp->new); + add_folder (menu, state, tmp->path, NULL, tmp); continue; @@ -442,3 +448,3 @@ static int examine_mailboxes (MUTTMENU * { - add_folder (menu, state, tmp->path, NULL, tmp->new); + add_folder (menu, state, tmp->path, NULL, tmp); continue; @@ -456,3 +462,3 @@ static int examine_mailboxes (MUTTMENU * - add_folder (menu, state, buffer, &s, tmp->new); + add_folder (menu, state, buffer, &s, tmp); } --- maildir-mtime/buffy.c Dec 2002 11:19:39 -0000 3.6 +++ maildir-mtime/buffy.c Feb 2003 20:49:34 -0000 @@ -226,2 +226,3 @@ int mutt_parse_mailboxes (BUFFER *path, (*tmp)->newly_created = 0; + (*tmp)->mtime = 0; @@ -257,2 +258,3 @@ int mutt_buffy_check (int force) struct stat sb; + struct stat smd; struct dirent *de; @@ -296,2 +298,3 @@ int mutt_buffy_check (int force) tmp->new = 0; + tmp->mtime = 0; @@ -381,6 +384,13 @@ int mutt_buffy_check (int force) { - /* one new and undeleted message is enough */ - BuffyCount++; - tmp->new = 1; - break; + if (!tmp->new) + { + /* one new and undeleted message is enough */ + BuffyCount++; + tmp->new = 1; + } + snprintf (path, sizeof (path), "%s/new/%s", tmp->path, de->d_name); + if (!stat (path, &smd) && smd.st_mtime > tmp->mtime) + { + tmp->mtime = smd.st_mtime; + } } --- maildir-mtime/buffy.h Dec 2002 11:19:39 -0000 3.2 +++ maildir-mtime/buffy.h Feb 2003 20:49:34 -0000 @@ -29,2 +29,3 @@ typedef struct buffy_t struct buffy_t *next; + time_t mtime; /* for maildirs...time of newest entry */ short new; /* mailbox has new mail */