diff options
author | phk <phk@FreeBSD.org> | 1995-01-29 00:49:57 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 1995-01-29 00:49:57 +0000 |
commit | 44d9c7e9b3d448bf116a13c6bd8ebb5d7c8ffe36 (patch) | |
tree | 74d96360e3e3de678927ef324e7928a057b7d3dd /usr.bin/file2c/file2c.c | |
parent | 1c4f0da002bee304102c51e111fb0008aa0c8634 (diff) | |
download | FreeBSD-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.c | 46 |
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; +} |