00001 #include <stdio.h> 00002 #include <stdarg.h> 00003 00004 #include "srec.h" 00005 00006 void 00007 fatal (char *fmt, ...) 00008 { 00009 va_list arglist; 00010 va_start(arglist, fmt); 00011 vfprintf(stderr, fmt, arglist); 00012 va_end(arglist); 00013 exit(1); 00014 } 00015 00016 int 00017 main (int argc, char **argv) 00018 { 00019 FILE *file; 00020 char buf[256]; 00021 int line = 0; 00022 srec_t srec; 00023 00024 if (argc != 2) 00025 fatal("usage: %s filename\n", argv[0]); 00026 00027 if (!(file = fopen(argv[1], "r"))) 00028 fatal("%s: couldn't open\n", argv[1]); 00029 00030 while (fgets(buf, sizeof(buf), file)) { 00031 int error; 00032 line++; 00033 if ((error = srec_decode(&srec, buf)) < 0) { 00034 if (error != S_INVALID_CKSUM) { 00035 fatal("%s: %s on line %d\n", 00036 argv[1], srec_strerror(error), line); 00037 } 00038 } 00039 if (srec.type == 0) { 00040 srec.data[srec.count] = '\0'; 00041 printf("S0: %s\n", srec.data); 00042 } 00043 } 00044 } 00045 00046 00047