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); | ||
|  | } |