#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc,char *argv[])
{
  int  n,nmax;
  FILE *fp,*fpt;
  char fname[64],dmy[64],pos2[64][128],pos2s[64][128],buf[512],*ret;

  if(argc != 3){
    fprintf(stderr,"Usage: %s exposure_list MODE\n",argv[0]);
    exit(0);
  }

  if((fp = fopen(argv[1],"r")) == NULL){
    fprintf(stderr,"Cannot open %s\n",argv[1]);
    exit(1);
  }

  n=0;
  while(!feof(fp)){
    if(fgets(buf,sizeof(buf),fp)==NULL) break;
    if(strncmp(buf,"#",1)==0) continue;
    if(sscanf(buf,"%s %s %s",dmy,dmy,pos2[n]) < 3){
      fprintf(stderr,"Wrong format: %s",buf);
    exit(1);
    }
  if(strcmp(pos2[n],"NONE")==0) continue;
  if((ret = strrchr(pos2[n], '/')) != NULL) sprintf(pos2s[n],"%ssub",ret+1);
  else sprintf(pos2s[n],"%ssub",pos2[n]);
  //fprintf(stderr,"%s\n",pos2s[n]);
  n++;
  }
  fclose(fp);
  nmax=n;
  
  fprintf(stderr,"Write mkscr2.cl ... ");
  if((fp = fopen("mkscr2.cl","w")) == NULL){
    fprintf(stderr,"Cannot open mkscr2.cl\n");
    exit(1);
  }
  for(n=0;n<nmax-1;n++){
    sprintf(fname,"%s1.fits",pos2s[n+1]);
    if((fpt=fopen(fname,"rb"))!=NULL){
      fclose(fpt);
      sprintf(fname,"%s2.fits",pos2s[n]);
      if((fpt=fopen(fname,"rb"))!=NULL){
	fclose(fpt);
	continue;
      }
    }
    fprintf(fp,"imdel sky\n");
    fprintf(fp,"!../subtract %s.fits %s.fits sky.fits %s\n",pos2[n+1],pos2[n],argv[2]);
    fprintf(fp,"cl < subtract.cl\n");
    fprintf(fp,"#The stars shown in Frame #2 and #3 will be subtracted in mkscr.cl.\n");
    fprintf(fp,"\n");
  }
  fclose(fp);
  fprintf(stderr,"OK\n");
  return(0);
}
