11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Unloved program to convert a binary on stdin to a C include on stdout 31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Jan 1999 Matt Mackall <mpm@selenic.com> 51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * This software may be used and distributed according to the terms 71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * of the GNU General Public License, incorporated herein by reference. 81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <stdio.h> 111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsint main(int argc, char *argv[]) 131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 148370edea81e321b8a976969753d6b2811e6d5ed6Vivek Goyal int ch, total = 0; 151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds if (argc > 1) 171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds printf("const char %s[] %s=\n", 181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds argv[1], argc > 2 ? argv[2] : ""); 191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds do { 211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds printf("\t\""); 228370edea81e321b8a976969753d6b2811e6d5ed6Vivek Goyal while ((ch = getchar()) != EOF) { 231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds total++; 248370edea81e321b8a976969753d6b2811e6d5ed6Vivek Goyal printf("\\x%02x", ch); 251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds if (total % 16 == 0) 261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds break; 271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds } 281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds printf("\"\n"); 291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds } while (ch != EOF); 301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds if (argc > 1) 321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds printf("\t;\n\nconst int %s_size = %d;\n", argv[1], total); 331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds return 0; 351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} 36