aboutsummaryrefslogtreecommitdiff
path: root/mail/mutt-devel/files/extra-patch-maildir-mtime
blob: b5c27bc30861669c98e3ef0c31fbb824b3c3fc46 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
--- 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.2
--- browser.c.orig	Wed Jan 26 13:41:04 2005
+++ browser.c	Wed Feb  9 09:20:14 2005
@@ -27,6 +27,7 @@
 #ifdef USE_IMAP
 #include "imap.h"
 #endif
+#include "mx.h"
 
 #include <stdlib.h>
 #include <dirent.h>
@@ -346,6 +347,21 @@
     menu->data = state->entry;
 }
 
+static void check_maildir_times (BUFFY *buf, struct stat *st)
+{
+  char buffer[_POSIX_PATH_MAX + SHORT_STRING];
+  struct stat s;
+
+  if(!buf || buf->magic != M_MAILDIR)
+    return;
+
+  snprintf (buffer, sizeof (buffer), "%s/tmp", buf->path);
+  if (lstat (buffer, &s) != 0)
+    return;
+
+  st->st_mtime = s.st_mtime;
+}
+
 static int examine_directory (MUTTMENU *menu, struct browser_state *state,
 			      char *d, const char *prefix)
 {
@@ -409,6 +425,7 @@
     tmp = Incoming;
     while (tmp && mutt_strcmp (buffer, tmp->path))
       tmp = tmp->next;
+    check_maildir_times (tmp, &s);
     add_folder (menu, state, de->d_name, &s, (tmp) ? tmp->new : 0);
   }
   closedir (dp);  
@@ -454,6 +471,7 @@
     strfcpy (buffer, NONULL(tmp->path), sizeof (buffer));
     mutt_pretty_mailbox (buffer);
 
+    check_maildir_times (tmp, &s);
     add_folder (menu, state, buffer, &s, tmp->new);
   }
   while ((tmp = tmp->next));