--- 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