#include <time.h>
#include <pthread.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>

int getdate_err;

struct tm* getdate(const char* s) {
  static struct tm tmbuf;
  struct tm* ret = 0;
  char* datemsk = getenv("DATEMSK");
  FILE* f = 0;
  char fmt[100], *p;
  int cs;

  pthread_setcancelstate(PTHREAD_CANCEL_DEFERRED, &cs);

  if (!datemsk) {
    getdate_err = 1;
    goto out;
  }

  f = fopen(datemsk, "rbe");
  if (!f) {
    if (errno == ENOMEM)
      getdate_err = 6;
    else
      getdate_err = 2;
    goto out;
  }

  while (fgets(fmt, sizeof fmt, f)) {
    p = strptime(s, fmt, &tmbuf);
    if (p && !*p) {
      ret = &tmbuf;
      goto out;
    }
  }

  getdate_err = 7;
out:
  if (f)
    fclose(f);
  pthread_setcancelstate(cs, 0);
  return ret;
}
