#include "memo.h"


set_memo(nwords, words)
int nwords;
char *words[];
{
	int skip; /* number of words to skip as just timing info */
	long starts, expires=0, repeats=0;
	starts = time(0);
	
	if ((fp = fopen(mfile, "a")) == NULL)
		fprintf(stderr, "memo: can't open memo file %s\n", mfile);
	else {
		skip=parse_timing(nwords, words, &starts, &expires, &repeats);
		nwords -= skip;
		words += skip;

		fprintf(fp, "%ld %ld %ld ", starts, expires, repeats);
		while (nwords-- > 0)
			fprintf(fp, (nwords > 0) ? "%s " : "%s\n", *words++);
		fclose(fp);
	}
}

parse_timing(nwords, words, starts, expires, repeats)
     int nwords, *starts, *expires, *repeats;
     char *words[];
{
  int skip=0;

  if (*words
      && (strcmp(*words, "-starts") == 0
	  || strcmp(*words, "-st") == 0))
    {
      nwords--;
      words++;
      skip++;
      *starts = ltime(*words);
      nwords--;
      words++;
      skip++;
      skip += parse_timing(nwords, words, starts, expires, repeats);
    }
  else if (*words
	   && (strcmp(*words, "-expires") == 0
	       || strcmp(*words, "-exp") == 0))
    {
      nwords--;
      words++;
      skip++;
      *expires = ltime(*words);
      nwords--;
      words++;
      skip++;
      skip += parse_timing(nwords, words, starts, expires, repeats);
    }
  else if (*words
	   && (strcmp(*words, "-repeats") == 0
	       || strcmp(*words, "-rpt") == 0))
    {
      nwords--;
      words++;
      skip++;
      *repeats = rltime(*words);
      nwords--;
      words++;
      skip++;
      skip += parse_timing(nwords, words, starts, expires, repeats);
    }
  return skip;
}
