31 lines
		
	
	
		
			589 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			589 B
		
	
	
	
		
			C
		
	
	
	
	
	
#include <stdio.h>
 | 
						|
#include <stdlib.h>
 | 
						|
#include "tai.h"
 | 
						|
#include "leapsecs.h"
 | 
						|
#include "caldate.h"
 | 
						|
 | 
						|
/* XXX: breaks tai encapsulation */
 | 
						|
 | 
						|
/* XXX: output here has to be binary; DOS redirection uses ASCII */
 | 
						|
 | 
						|
char line[100];
 | 
						|
 | 
						|
int
 | 
						|
main(int argc, char**argv)
 | 
						|
{
 | 
						|
  struct caldate cd;
 | 
						|
  struct tai t;
 | 
						|
  char x[TAI_PACK];
 | 
						|
  long leaps = 0;
 | 
						|
 | 
						|
  while (fgets(line,sizeof line,stdin))
 | 
						|
    if (line[0] == '+')
 | 
						|
      if (caldate_scan(line + 1,&cd)) {
 | 
						|
	t.x = (caldate_mjd(&cd) + 1) * 86400ULL + 4611686014920671114ULL + leaps++;
 | 
						|
        tai_pack(x,&t);
 | 
						|
	fwrite(x,TAI_PACK,1,stdout);
 | 
						|
      }
 | 
						|
 | 
						|
  exit(0);
 | 
						|
}
 |