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