#include <stdio.h>
char a[136],color[16];
int posi[16];
FILE *fp,*fp1;
float x,y,xc[16];
main(int ac,char **av)
{
  char f1[20],f2[20];
  int i,j,k,m,n;
  if(ac<2){
    printf("\n\t ***** add Delta_mag to *.mag2,*.mag3 ******\n");
    printf("\n\t edit a file Ta30.dav, color oldav newav/line");
    printf("\n\t sample: j 2.500 2.235\n");
    printf("\n\t Usage: addmag Ta30i_15\n");
    printf("\n\t produce ta30i_15.mag2, ta30i_15.mag3");
    printf("\n\t last, delata *.dav, change name you do\n");
    exit(0);
  }
  strcpy(f2,av[1]); f2[4]=0;
  sprintf(f1,"%s.dav\0",f2);
//  printf("%s\n",f1);
  fp=fopen(f1,"r"); if(fp==0){ printf("%s not found!\n",f1); exit(0); }
  k=0;
l10:
  fgets(f2,20,fp); if(feof(fp))goto l20;
  sscanf(f2,"%c %f %f",&color[k],&x,&y);
  xc[k++]=y-x;
  goto l10;
l20:
  fclose(fp);
  for(i=0;i<k;i++)printf("%c %f\n",color[i],xc[i]);
  
  for(n=50;n<=51;n++){
    sprintf(f1,"%s.mag%c\0",av[1],n); 
    fp=fopen(f1,"r"); if(fp==0){ printf("%s not found!\n",f1); exit(0); }
    strcpy(f2,f1); f2[0]+=32; fp1=fopen(f2,"w");
    fgets(a,136,fp); fprintf(fp1,"%s",a);
    for(i=0;i<k;i++){
      for(j=34;j<strlen(a);j+=6)if(color[i]==a[j])break;
      posi[i]=j-3;
      if(j>=strlen(a)){ printf("no %c in *.mag?\n",color[i]); exit(0); }
    }
//    for(i=0;i<k;i++)printf("%c %f %d\n",color[i],xc[i],posi[i]);
l30:
    fgets(a,136,fp); if(feof(fp))goto l40;
    m=strlen(a);
    for(i=0;i<k;i++){
      j=posi[i];
      sscanf(&a[j],"%f",&x); 
      if(x>0. && x<30.){ x+=xc[i]; sprintf(&a[j],"%5.2f",x);
                          a[j+5]=32; if(j+6>=m)a[j+5]=10; }
    }
    fprintf(fp1,"%s",a); fgets(a,136,fp); fprintf(fp1,"%s",a);
    goto l30;
l40:
    fclose(fp); fclose(fp1);                        
  }
}
