/* $Cambridge: hermes/src/mailchk/biffcheck.c,v 1.1 2003/08/10 22:27:44 dpc22 Exp $ */

#include <stdio.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <unistd.h>

#define CURRENT ".biff.current"
#define LAST    ".biff.last"

int main(int argc, char **argv)
{
  FILE *file;
  int newsize = 0;
  int oldsize = 0;
  char *dir;
  
  if ((dir = (char *) getenv ("HOME")) != NULL)
      chdir(dir);

  if ((file = fopen(LAST, "r+")) != NULL) {
      fscanf(file, "%d", &oldsize);
      fclose(file);
  }

  if ((file = fopen(CURRENT, "r+")) != NULL) {
      fscanf(file, "%d", &newsize);
      fclose(file);
  }

  if (newsize == oldsize)
      return(1);          /* No change */

  umask(077);
  if ((file=fopen(LAST, "w")) != NULL) {
      fprintf(file, "%d\n", newsize);
      fclose(file);
  }

  if (newsize < oldsize)  
      return(2);          /* Mail cleared */

  return(0);              /* New mail */
}
