summaryrefslogtreecommitdiffstats
path: root/usr.bin/file2c/file2c.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>1995-01-29 00:49:57 +0000
committerphk <phk@FreeBSD.org>1995-01-29 00:49:57 +0000
commit44d9c7e9b3d448bf116a13c6bd8ebb5d7c8ffe36 (patch)
tree74d96360e3e3de678927ef324e7928a057b7d3dd /usr.bin/file2c/file2c.c
parent1c4f0da002bee304102c51e111fb0008aa0c8634 (diff)
downloadFreeBSD-src-44d9c7e9b3d448bf116a13c6bd8ebb5d7c8ffe36.zip
FreeBSD-src-44d9c7e9b3d448bf116a13c6bd8ebb5d7c8ffe36.tar.gz
This is a small little program used to execute a bad practice a clean way :-)
It will read a file on stdin and write it as decimal integers on stdout, this is useful for embedding files in c-sources. There are a few places where this is needed, and this is a better way than the current practice of hand-editing the sources. The command: date | file2c 'const char date[] = {' ',0};' will produce: const char date[] = { 83,97,116,32,74,97,110,32,50,56,32,49,54,58,52,55,58,51,51,32,80,83,84, 32,49,57,57,53,10 ,0}; The manual page is 2 lines longer than the source :-)
Diffstat (limited to 'usr.bin/file2c/file2c.c')
-rw-r--r--usr.bin/file2c/file2c.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/usr.bin/file2c/file2c.c b/usr.bin/file2c/file2c.c
new file mode 100644
index 0000000..0bad904
--- /dev/null
+++ b/usr.bin/file2c/file2c.c
@@ -0,0 +1,46 @@
+/*
+ * ----------------------------------------------------------------------------
+ * "THE BEER-WARE LICENSE" (Revision 42):
+ * <phk@login.dknet.dk> wrote this file. As long as you retain this notice you
+ * can do whatever you want with this stuff. If we meet some day, and you think
+ * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
+ * ----------------------------------------------------------------------------
+ *
+ * $Id$
+ *
+ */
+
+#include <stdio.h>
+
+int
+main(int argc, char **argv)
+{
+ int i,j,k;
+ char s[10];
+
+ if (argc > 1)
+ printf("%s\n",argv[1]);
+ k = 0;
+ j = 0;
+ while((i = getchar()) != EOF) {
+ if(k++) {
+ putchar(',');
+ j++;
+ }
+ if (j > 70) {
+ putchar('\n');
+ j = 0;
+ }
+ printf("%d",i);
+ if (i > 99)
+ j += 3;
+ else if (i > 9)
+ j += 2;
+ else
+ j++;
+ }
+ putchar('\n');
+ if (argc > 2)
+ printf("%s\n",argv[2]);
+ return 0;
+}
OpenPOWER on IntegriCloud