1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * Unloved program to convert a binary on stdin to a C include on stdout 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * Jan 1999 Matt Mackall <mpm@selenic.com> 5*4882a593Smuzhiyun * 6*4882a593Smuzhiyun * This software may be used and distributed according to the terms 7*4882a593Smuzhiyun * of the GNU General Public License, incorporated herein by reference. 8*4882a593Smuzhiyun */ 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun #include <stdio.h> 11*4882a593Smuzhiyun main(int argc,char * argv[])12*4882a593Smuzhiyunint main(int argc, char *argv[]) 13*4882a593Smuzhiyun { 14*4882a593Smuzhiyun int ch, total = 0; 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun if (argc > 1) 17*4882a593Smuzhiyun printf("const char %s[] %s=\n", 18*4882a593Smuzhiyun argv[1], argc > 2 ? argv[2] : ""); 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun do { 21*4882a593Smuzhiyun printf("\t\""); 22*4882a593Smuzhiyun while ((ch = getchar()) != EOF) { 23*4882a593Smuzhiyun total++; 24*4882a593Smuzhiyun printf("\\x%02x", ch); 25*4882a593Smuzhiyun if (total % 16 == 0) 26*4882a593Smuzhiyun break; 27*4882a593Smuzhiyun } 28*4882a593Smuzhiyun printf("\"\n"); 29*4882a593Smuzhiyun } while (ch != EOF); 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun if (argc > 1) 32*4882a593Smuzhiyun printf("\t;\n\n#include <linux/types.h>\n\nconst size_t %s_size = %d;\n", 33*4882a593Smuzhiyun argv[1], total); 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun return 0; 36*4882a593Smuzhiyun } 37