mirror of
https://github.com/freebsd/freebsd-src
synced 2024-11-05 18:22:52 +00:00
b71255826d
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 :-)
46 lines
931 B
C
46 lines
931 B
C
/*
|
|
* ----------------------------------------------------------------------------
|
|
* "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;
|
|
}
|