Add '-s' option and update the manual page. With this option, it prints
little more style(9) friendly output. For example: %file2c -n 8 -s -x 'const char data[] = {' '};' < /etc/motd const char data[] = { 0x46, 0x72, 0x65, 0x65, 0x42, 0x53, 0x44, 0x20, 0x37, 0x2e, 0x30, 0x2d, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x54, 0x20, 0x28, 0x42, 0x45, 0x41, 0x53, 0x54, 0x49, 0x45, 0x29, 0x20, 0x23, 0x30, 0x3a, 0x20, 0x57, 0x65, 0x64, 0x20, 0x4d, 0x61, 0x72, 0x20, 0x32, 0x31, 0x20, 0x31, 0x39, 0x3a, 0x30, 0x34, 0x3a, 0x33, 0x36, 0x20, 0x45, 0x44, 0x54, 0x20, 0x32, 0x30, 0x30, 0x37, 0x0a };
This commit is contained in:
parent
cad72a80bd
commit
778ee3c639
@ -7,7 +7,7 @@
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd May 14, 2005
|
||||
.Dd March 22, 2007
|
||||
.Dt FILE2C 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -16,6 +16,7 @@
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl n Ar count
|
||||
.Op Fl s
|
||||
.Op Fl x
|
||||
.Op Ar prefix Op Ar suffix
|
||||
.Sh DESCRIPTION
|
||||
@ -27,7 +28,10 @@ The byte values are separated by a comma.
|
||||
This also means that the last byte value is not followed by a comma.
|
||||
By default the byte values are printed in decimal, but when the
|
||||
.Fl x
|
||||
option is given, the values will be printed in hexadecimal.
|
||||
option is given, the values will be printed in hexadecimal. When
|
||||
.Fl s
|
||||
option is given, each line is printed with a leading tab and each comma is
|
||||
followed by a space except for the last one on the line.
|
||||
.Pp
|
||||
If more than 70 characters are printed on the same line, that line is
|
||||
ended and the output continues on the next line.
|
||||
@ -50,9 +54,11 @@ This program is typically used to embed binary files into C source files.
|
||||
The prefix is used to define an array type and the suffix is used to end
|
||||
the C statement.
|
||||
The
|
||||
.Fl x
|
||||
and
|
||||
.Fl n
|
||||
,
|
||||
.Fl s
|
||||
and
|
||||
.Fl x
|
||||
options are useful when the binary data represents a bitmap and the output
|
||||
needs to remain readable and/or editable.
|
||||
Fonts, for example, are a good example of this.
|
||||
|
@ -19,7 +19,7 @@ static void
|
||||
usage(void)
|
||||
{
|
||||
|
||||
fprintf(stderr, "usage: %s [-n count] [-x] [prefix [suffix]]\n",
|
||||
fprintf(stderr, "usage: %s [-n count] [-s] [-x] [prefix [suffix]]\n",
|
||||
getprogname());
|
||||
exit(1);
|
||||
}
|
||||
@ -27,15 +27,19 @@ usage(void)
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
int c, count, linepos, maxcount, radix;
|
||||
int c, count, linepos, maxcount, pretty, radix;
|
||||
|
||||
maxcount = 0;
|
||||
pretty = 0;
|
||||
radix = 10;
|
||||
while ((c = getopt(argc, argv, "n:x")) != -1) {
|
||||
while ((c = getopt(argc, argv, "n:sx")) != -1) {
|
||||
switch (c) {
|
||||
case 'n': /* Max. number of bytes per line. */
|
||||
maxcount = strtol(optarg, NULL, 10);
|
||||
break;
|
||||
case 's': /* Be more style(9) comliant. */
|
||||
pretty = 1;
|
||||
break;
|
||||
case 'x': /* Print hexadecimal numbers. */
|
||||
radix = 16;
|
||||
break;
|
||||
@ -60,6 +64,15 @@ main(int argc, char *argv[])
|
||||
putchar('\n');
|
||||
count = linepos = 0;
|
||||
}
|
||||
if (pretty) {
|
||||
if (count) {
|
||||
putchar(' ');
|
||||
linepos++;
|
||||
} else {
|
||||
putchar('\t');
|
||||
linepos += 8;
|
||||
}
|
||||
}
|
||||
switch (radix) {
|
||||
case 10:
|
||||
linepos += printf("%d", c);
|
||||
|
Loading…
Reference in New Issue
Block a user