--- mail.c.orig	Fri May  6 10:47:22 2005
+++ mail.c	Fri May  6 19:17:15 2005
@@ -12,30 +12,26 @@
 static double last_mail_update;
 
 void update_mail_count() {
-  struct stat buf;
+  struct stat sbuf;
 
   if (current_mail_spool == NULL) return;
 
   /* TODO: use that fine file modification notify on Linux 2.4 */
 
-  /* don't check mail so often (9.5s is minimum interval) */
-  if (current_update_time - last_mail_update < 9.5)
+  /* don't check mail so often (5.5s is minimum interval) */
+  if (current_update_time - last_mail_update < 5.5)
     return;
   else
     last_mail_update = current_update_time;
 
-  if (stat(current_mail_spool, &buf)) {
-    static int rep;
-    if (!rep) {
+  if (stat(current_mail_spool, &sbuf) == -1) {
       ERR("can't stat %s: %s", current_mail_spool, strerror(errno));
-      rep = 1;
-    }
-    return;
+      return;
   }
 
 #if HAVE_DIRENT_H
   /* maildir format */
-	if (S_ISDIR(buf.st_mode)){
+	if (S_ISDIR(sbuf.st_mode)){
 		DIR *dir;
 		char *dirname;
 		struct dirent *dirent;
@@ -95,7 +91,7 @@
 	/* mbox format */
 
 
-  if (buf.st_mtime != last_mail_mtime) {
+  if (sbuf.st_ctime != last_mail_mtime) {
     /* yippee, modification time has changed, let's read mail count! */
     static int rep;
     FILE *fp;
@@ -127,7 +123,6 @@
             reading_status = 1;
         }
       }
-      else {
         if (reading_status && strncmp(buf, "X-Mozilla-Status:", 17) == 0) {
           /* check that mail isn't already read */
           if (strchr(buf+21, '0'))
@@ -144,7 +139,6 @@
           reading_status = 0;
           continue;
         }
-      }
 
       /* skip until \n */
       while (strchr(buf, '\n') == NULL && !feof(fp))
@@ -155,7 +149,7 @@
 
     if (reading_status) info.new_mail_count++;
 
-    last_mail_mtime = buf.st_mtime;
+    last_mail_mtime = sbuf.st_mtime;
   }
 }
 
--------------------- patch -----------------------------




syntax highlighted by Code2HTML, v. 0.9.1