xref: /aosp_15_r20/external/libpcap/msdos/bin2c.c (revision 8b26181f966a6af5cf6981a6f474313de533bb28)
1*8b26181fSAndroid Build Coastguard Worker #include <stdio.h>
2*8b26181fSAndroid Build Coastguard Worker #include <stdlib.h>
3*8b26181fSAndroid Build Coastguard Worker #include <stdarg.h>
4*8b26181fSAndroid Build Coastguard Worker #include <time.h>
5*8b26181fSAndroid Build Coastguard Worker 
Abort(const char * fmt,...)6*8b26181fSAndroid Build Coastguard Worker static void Abort (const char *fmt,...)
7*8b26181fSAndroid Build Coastguard Worker {
8*8b26181fSAndroid Build Coastguard Worker   va_list args;
9*8b26181fSAndroid Build Coastguard Worker   va_start (args, fmt);
10*8b26181fSAndroid Build Coastguard Worker   vfprintf (stderr, fmt, args);
11*8b26181fSAndroid Build Coastguard Worker   va_end (args);
12*8b26181fSAndroid Build Coastguard Worker   exit (1);
13*8b26181fSAndroid Build Coastguard Worker }
14*8b26181fSAndroid Build Coastguard Worker 
main(int argc,char ** argv)15*8b26181fSAndroid Build Coastguard Worker int main (int argc, char **argv)
16*8b26181fSAndroid Build Coastguard Worker {
17*8b26181fSAndroid Build Coastguard Worker   FILE  *inFile;
18*8b26181fSAndroid Build Coastguard Worker   FILE  *outFile = stdout;
19*8b26181fSAndroid Build Coastguard Worker   time_t now     = time (NULL);
20*8b26181fSAndroid Build Coastguard Worker   int    ch, i;
21*8b26181fSAndroid Build Coastguard Worker 
22*8b26181fSAndroid Build Coastguard Worker   if (argc != 2)
23*8b26181fSAndroid Build Coastguard Worker      Abort ("Usage: %s bin-file [> result]", argv[0]);
24*8b26181fSAndroid Build Coastguard Worker 
25*8b26181fSAndroid Build Coastguard Worker   if ((inFile = fopen(argv[1],"rb")) == NULL)
26*8b26181fSAndroid Build Coastguard Worker      Abort ("Cannot open %s\n", argv[1]);
27*8b26181fSAndroid Build Coastguard Worker 
28*8b26181fSAndroid Build Coastguard Worker   fprintf (outFile,
29*8b26181fSAndroid Build Coastguard Worker            "/* data statements for file %s at %.24s */\n"
30*8b26181fSAndroid Build Coastguard Worker            "/* Generated by BIN2C, G. Vanem 1995 */\n",
31*8b26181fSAndroid Build Coastguard Worker            argv[1], ctime(&now));
32*8b26181fSAndroid Build Coastguard Worker 
33*8b26181fSAndroid Build Coastguard Worker   i = 0;
34*8b26181fSAndroid Build Coastguard Worker   while ((ch = fgetc(inFile)) != EOF)
35*8b26181fSAndroid Build Coastguard Worker   {
36*8b26181fSAndroid Build Coastguard Worker     if (i++ % 12 == 0)
37*8b26181fSAndroid Build Coastguard Worker        fputs ("\n  ", outFile);
38*8b26181fSAndroid Build Coastguard Worker     fprintf (outFile, "0x%02X,", ch);
39*8b26181fSAndroid Build Coastguard Worker   }
40*8b26181fSAndroid Build Coastguard Worker   fputc ('\n', outFile);
41*8b26181fSAndroid Build Coastguard Worker   fclose (inFile);
42*8b26181fSAndroid Build Coastguard Worker   return (0);
43*8b26181fSAndroid Build Coastguard Worker }
44