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
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=167823
@ -7,7 +7,7 @@
|
|||||||
.\"
|
.\"
|
||||||
.\" $FreeBSD$
|
.\" $FreeBSD$
|
||||||
.\"
|
.\"
|
||||||
.Dd May 14, 2005
|
.Dd March 22, 2007
|
||||||
.Dt FILE2C 1
|
.Dt FILE2C 1
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@ -16,6 +16,7 @@
|
|||||||
.Sh SYNOPSIS
|
.Sh SYNOPSIS
|
||||||
.Nm
|
.Nm
|
||||||
.Op Fl n Ar count
|
.Op Fl n Ar count
|
||||||
|
.Op Fl s
|
||||||
.Op Fl x
|
.Op Fl x
|
||||||
.Op Ar prefix Op Ar suffix
|
.Op Ar prefix Op Ar suffix
|
||||||
.Sh DESCRIPTION
|
.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.
|
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
|
By default the byte values are printed in decimal, but when the
|
||||||
.Fl x
|
.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
|
.Pp
|
||||||
If more than 70 characters are printed on the same line, that line is
|
If more than 70 characters are printed on the same line, that line is
|
||||||
ended and the output continues on the next line.
|
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 prefix is used to define an array type and the suffix is used to end
|
||||||
the C statement.
|
the C statement.
|
||||||
The
|
The
|
||||||
.Fl x
|
|
||||||
and
|
|
||||||
.Fl n
|
.Fl n
|
||||||
|
,
|
||||||
|
.Fl s
|
||||||
|
and
|
||||||
|
.Fl x
|
||||||
options are useful when the binary data represents a bitmap and the output
|
options are useful when the binary data represents a bitmap and the output
|
||||||
needs to remain readable and/or editable.
|
needs to remain readable and/or editable.
|
||||||
Fonts, for example, are a good example of this.
|
Fonts, for example, are a good example of this.
|
||||||
|
@ -19,7 +19,7 @@ static void
|
|||||||
usage(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());
|
getprogname());
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
@ -27,15 +27,19 @@ usage(void)
|
|||||||
int
|
int
|
||||||
main(int argc, char *argv[])
|
main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int c, count, linepos, maxcount, radix;
|
int c, count, linepos, maxcount, pretty, radix;
|
||||||
|
|
||||||
maxcount = 0;
|
maxcount = 0;
|
||||||
|
pretty = 0;
|
||||||
radix = 10;
|
radix = 10;
|
||||||
while ((c = getopt(argc, argv, "n:x")) != -1) {
|
while ((c = getopt(argc, argv, "n:sx")) != -1) {
|
||||||
switch (c) {
|
switch (c) {
|
||||||
case 'n': /* Max. number of bytes per line. */
|
case 'n': /* Max. number of bytes per line. */
|
||||||
maxcount = strtol(optarg, NULL, 10);
|
maxcount = strtol(optarg, NULL, 10);
|
||||||
break;
|
break;
|
||||||
|
case 's': /* Be more style(9) comliant. */
|
||||||
|
pretty = 1;
|
||||||
|
break;
|
||||||
case 'x': /* Print hexadecimal numbers. */
|
case 'x': /* Print hexadecimal numbers. */
|
||||||
radix = 16;
|
radix = 16;
|
||||||
break;
|
break;
|
||||||
@ -60,6 +64,15 @@ main(int argc, char *argv[])
|
|||||||
putchar('\n');
|
putchar('\n');
|
||||||
count = linepos = 0;
|
count = linepos = 0;
|
||||||
}
|
}
|
||||||
|
if (pretty) {
|
||||||
|
if (count) {
|
||||||
|
putchar(' ');
|
||||||
|
linepos++;
|
||||||
|
} else {
|
||||||
|
putchar('\t');
|
||||||
|
linepos += 8;
|
||||||
|
}
|
||||||
|
}
|
||||||
switch (radix) {
|
switch (radix) {
|
||||||
case 10:
|
case 10:
|
||||||
linepos += printf("%d", c);
|
linepos += printf("%d", c);
|
||||||
|
Loading…
Reference in New Issue
Block a user