freebsd-ports/mail/mutt-devel/files/extra-patch-maildir-mtime
Kirill Ponomarev 82728efb9c Update to version 1.5.7
PR:		ports/77161
Submitted by:	maintainer
2005-02-06 08:58:43 +00:00

125 lines
3.5 KiB
Text

--- PATCHES Dec 2002 17:44:54 -0000 3.6
+++ PATCHES Feb 2004 13:19:42 -0000
@@ -0,0 +1 @@
+patch-1.5.7.ust.maildir-mtime.1
--- browser.c Sep 2003 13:03:25 -0000 3.9
+++ browser.c Feb 2004 13:19:42 -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, 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);
}
--- buffy.c.orig Sat Oct 30 23:40:07 2004
+++ buffy.c Sat Feb 5 13:57:07 2005
@@ -227,6 +227,7 @@
(*tmp)->new = 0;
(*tmp)->notified = 1;
(*tmp)->newly_created = 0;
+ (*tmp)->mtime = 0;
#ifdef BUFFY_SIZE
/* for buffy_size, it is important that if the folder is new (tested by
@@ -258,6 +259,7 @@
{
BUFFY *tmp;
struct stat sb;
+ struct stat smd;
struct dirent *de;
DIR *dirp;
char path[_POSIX_PATH_MAX];
@@ -297,6 +299,7 @@
for (tmp = Incoming; tmp; tmp = tmp->next)
{
tmp->new = 0;
+ tmp->mtime = 0;
#ifdef USE_IMAP
if (mx_is_imap (tmp->path))
@@ -370,21 +373,31 @@
case M_MAILDIR:
snprintf (path, sizeof (path), "%s/new", tmp->path);
+ stat (path, &smd);
+ tmp->mtime = smd.st_mtime;
if ((dirp = opendir (path)) == NULL)
{
tmp->magic = 0;
break;
}
+
while ((de = readdir (dirp)) != NULL)
{
char *p;
if (*de->d_name != '.' &&
(!(p = strstr (de->d_name, ":2,")) || !strchr (p + 3, 'T')))
{
- /* 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;
+ }
}
}
closedir (dirp);
@@ -414,6 +427,12 @@
#ifdef BUFFY_SIZE
else if (Context && Context->path)
tmp->size = (long) sb.st_size; /* update the size */
+#else
+ else if(tmp->magic == M_MAILDIR) {
+ snprintf (path, sizeof (path), "%s/new", tmp->path);
+ stat (path, &smd);
+ tmp->mtime = smd.st_mtime;
+ }
#endif
if (!tmp->new)
--- buffy.h Dec 2002 11:19:39 -0000 3.2
+++ buffy.h Feb 2004 13:19:42 -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 */