summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2007-03-23 00:00:22 +0000
committerjkim <jkim@FreeBSD.org>2007-03-23 00:00:22 +0000
commita5ad97114507d37e42e9187f6a3a713c46a85e17 (patch)
tree5f1441cd104542dde287150d9bee49aff3f87989
parent9c3e35760fb160177d709f6ffb63bd17f15d41f8 (diff)
downloadFreeBSD-src-a5ad97114507d37e42e9187f6a3a713c46a85e17.zip
FreeBSD-src-a5ad97114507d37e42e9187f6a3a713c46a85e17.tar.gz
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 };
-rw-r--r--usr.bin/file2c/file2c.114
-rw-r--r--usr.bin/file2c/file2c.c19
2 files changed, 26 insertions, 7 deletions
diff --git a/usr.bin/file2c/file2c.1 b/usr.bin/file2c/file2c.1
index 80bbb2e..a4f72e2 100644
--- a/usr.bin/file2c/file2c.1
+++ b/usr.bin/file2c/file2c.1
@@ -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.
diff --git a/usr.bin/file2c/file2c.c b/usr.bin/file2c/file2c.c
index 8e16bbb..14f754e 100644
--- a/usr.bin/file2c/file2c.c
+++ b/usr.bin/file2c/file2c.c
@@ -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);
OpenPOWER on IntegriCloud