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