--- xbuffy.c.orig Thu Mar 30 08:57:43 1995 +++ xbuffy.c Thu Feb 27 16:00:12 1997 @@ -300,8 +300,8 @@ if (data.center) /* center implies fill */ { - offset = ((maxBoxSize+4) - strlen(amt))/2; + if (offset < 0) offset = 0; ptr = fmtString+ offset; strcpy(ptr,amt); ptr = fmtString+strlen(fmtString); @@ -310,15 +310,14 @@ } else if (data.fill) { - - - offset = maxBoxSize+4-strlen(amt); - strcpy(fmtString,amt); - ptr = fmtString+strlen(fmtString); - while (offset-- >0) - *ptr++ = ' '; + offset = maxBoxSize+4-strlen(amt); + if (offset < 0) offset = 0; + strcpy(fmtString,amt); + ptr = fmtString+strlen(fmtString); + while (offset-- >0) + *ptr++ = ' '; - *ptr = '\0'; + *ptr = '\0'; } else { @@ -668,6 +667,7 @@ int status; register Boolean in_header = FALSE; struct stat f_stat; + struct timeval t[2]; *beenTouched = FALSE; @@ -674,8 +674,12 @@ if (isLocked(mailBox->box)) return (mailBox->n); - - stat(mailBox->box, &f_stat); + if (stat(mailBox->box, &f_stat)) + { + mailBox->st_size = 0; + mailBox->box_mtime = 0; + return (0); + } if ((f_stat.st_size != mailBox->st_size) || (f_stat.st_mtime > mailBox->box_mtime)) @@ -768,6 +772,15 @@ } } fclose(fp); + +/* Restore access time of mailbox. */ + + t[0].tv_sec = f_stat.st_atime; + t[0].tv_usec = 0; + t[1].tv_sec = f_stat.st_mtime; + t[1].tv_usec = 0; + + utimes(mailBox->box, t); return count; }