/*
   Given an email via stdin or
   filename, re-roll the headers and exit.
*/

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <eps.h>

int main(int argc, char *argv[])
{
  int fd = 0;
  eps_t *e = NULL;
  header_t *h = NULL;

  fd = 0;

  if (argc > 1) {
     fd = open(argv[1], O_RDONLY, 0600);
     if (fd == -1) {
        printf("cannot open %s\n", argv[1]);
        return 1;
     }
  }

  e = eps_begin(INTERFACE_STREAM, (int *)&fd);
  if (e == NULL) {
     printf("eps_begin failed\n");
     return 1;
  }

  for (h = eps_next_header(e); h; h = eps_next_header(e)) {
      if ((h->name) && (h->data))
         fold_fd(1, h->orig);
  }

  if (fd != 0)
     close(fd);

  eps_end(e);
  return 0;
}


syntax highlighted by Code2HTML, v. 0.9.1