Adds an option to the strings program to specify a separator between the emitted pieces of text.
* strings.c: Add -s/--output-separator option to specify custom separator string. * NEWS: Mention the new feature. * doc/binutils.text (strings): Document the new command line option.
This commit is contained in:
parent
3f263e4b5a
commit
55edd97b4b
4 changed files with 37 additions and 2 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
2015-09-10 Erik Ackermann <kurterikackermann@gmail.com>
|
||||||
|
|
||||||
|
* strings.c: Add -s/--output-separator option to specify custom
|
||||||
|
separator string.
|
||||||
|
* NEWS: Mention the new feature.
|
||||||
|
* doc/binutils.text (strings): Document the new command line
|
||||||
|
option.
|
||||||
|
|
||||||
2015-09-09 Nick Clifton <nickc@redhat.com>
|
2015-09-09 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
* doc/binutils.texi (ar): Remove bogus sentance concerning thin
|
* doc/binutils.texi (ar): Remove bogus sentance concerning thin
|
||||||
|
|
|
@ -6,6 +6,8 @@
|
||||||
|
|
||||||
* Add --update-section option to objcopy.
|
* Add --update-section option to objcopy.
|
||||||
|
|
||||||
|
* Add --output-separator option to strings.
|
||||||
|
|
||||||
Changes in 2.25:
|
Changes in 2.25:
|
||||||
|
|
||||||
* Add --data option to strings to only print strings in loadable, initialized
|
* Add --data option to strings to only print strings in loadable, initialized
|
||||||
|
|
|
@ -2790,6 +2790,7 @@ strings [@option{-afovV}] [@option{-}@var{min-len}]
|
||||||
[@option{-}] [@option{--all}] [@option{--print-file-name}]
|
[@option{-}] [@option{--all}] [@option{--print-file-name}]
|
||||||
[@option{-T} @var{bfdname}] [@option{--target=}@var{bfdname}]
|
[@option{-T} @var{bfdname}] [@option{--target=}@var{bfdname}]
|
||||||
[@option{-w}] [@option{--include-all-whitespace}]
|
[@option{-w}] [@option{--include-all-whitespace}]
|
||||||
|
[@option{-s}] [@option{--output-separator}@var{sep_string}]
|
||||||
[@option{--help}] [@option{--version}] @var{file}@dots{}
|
[@option{--help}] [@option{--version}] @var{file}@dots{}
|
||||||
@c man end
|
@c man end
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
@ -2894,6 +2895,13 @@ By default tab and space characters are included in the strings that
|
||||||
are displayed, but other whitespace characters, such a newlines and
|
are displayed, but other whitespace characters, such a newlines and
|
||||||
carriage returns, are not. The @option{-w} option changes this so
|
carriage returns, are not. The @option{-w} option changes this so
|
||||||
that all whitespace characters are considered to be part of a string.
|
that all whitespace characters are considered to be part of a string.
|
||||||
|
|
||||||
|
@item -s
|
||||||
|
@itemx --output-separator
|
||||||
|
By default, output strings are delimited by a new-line. This option
|
||||||
|
allows you to supply any string to be used as the output record
|
||||||
|
separator. Useful with --include-all-whitespace where strings
|
||||||
|
may contain new-lines internally.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@c man end
|
@c man end
|
||||||
|
|
|
@ -55,6 +55,10 @@
|
||||||
-T {bfdname}
|
-T {bfdname}
|
||||||
Specify a non-default object file format.
|
Specify a non-default object file format.
|
||||||
|
|
||||||
|
--output-separator=sep_string
|
||||||
|
-s sep_string String used to separate parsed strings in output.
|
||||||
|
Default is newline.
|
||||||
|
|
||||||
--help
|
--help
|
||||||
-h Print the usage message on the standard output.
|
-h Print the usage message on the standard output.
|
||||||
|
|
||||||
|
@ -114,6 +118,9 @@ static char *target;
|
||||||
static char encoding;
|
static char encoding;
|
||||||
static int encoding_bytes;
|
static int encoding_bytes;
|
||||||
|
|
||||||
|
/* Output string used to separate parsed strings */
|
||||||
|
static char *output_separator;
|
||||||
|
|
||||||
static struct option long_options[] =
|
static struct option long_options[] =
|
||||||
{
|
{
|
||||||
{"all", no_argument, NULL, 'a'},
|
{"all", no_argument, NULL, 'a'},
|
||||||
|
@ -124,6 +131,7 @@ static struct option long_options[] =
|
||||||
{"include-all-whitespace", required_argument, NULL, 'w'},
|
{"include-all-whitespace", required_argument, NULL, 'w'},
|
||||||
{"encoding", required_argument, NULL, 'e'},
|
{"encoding", required_argument, NULL, 'e'},
|
||||||
{"target", required_argument, NULL, 'T'},
|
{"target", required_argument, NULL, 'T'},
|
||||||
|
{"output-separator", required_argument, NULL, 's'},
|
||||||
{"help", no_argument, NULL, 'h'},
|
{"help", no_argument, NULL, 'h'},
|
||||||
{"version", no_argument, NULL, 'v'},
|
{"version", no_argument, NULL, 'v'},
|
||||||
{NULL, 0, NULL, 0}
|
{NULL, 0, NULL, 0}
|
||||||
|
@ -178,8 +186,9 @@ main (int argc, char **argv)
|
||||||
datasection_only = TRUE;
|
datasection_only = TRUE;
|
||||||
target = NULL;
|
target = NULL;
|
||||||
encoding = 's';
|
encoding = 's';
|
||||||
|
output_separator = NULL;
|
||||||
|
|
||||||
while ((optc = getopt_long (argc, argv, "adfhHn:wot:e:T:Vv0123456789",
|
while ((optc = getopt_long (argc, argv, "adfhHn:wot:e:T:s:Vv0123456789",
|
||||||
long_options, (int *) 0)) != EOF)
|
long_options, (int *) 0)) != EOF)
|
||||||
{
|
{
|
||||||
switch (optc)
|
switch (optc)
|
||||||
|
@ -248,6 +257,10 @@ main (int argc, char **argv)
|
||||||
encoding = optarg[0];
|
encoding = optarg[0];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 's':
|
||||||
|
output_separator = optarg;
|
||||||
|
break;
|
||||||
|
|
||||||
case 'V':
|
case 'V':
|
||||||
case 'v':
|
case 'v':
|
||||||
print_version ("strings");
|
print_version ("strings");
|
||||||
|
@ -650,7 +663,10 @@ print_strings (const char *filename, FILE *stream, file_ptr address,
|
||||||
putchar (c);
|
putchar (c);
|
||||||
}
|
}
|
||||||
|
|
||||||
putchar ('\n');
|
if (output_separator)
|
||||||
|
fputs (output_separator, stdout);
|
||||||
|
else
|
||||||
|
putchar ('\n');
|
||||||
}
|
}
|
||||||
free (buf);
|
free (buf);
|
||||||
}
|
}
|
||||||
|
@ -681,6 +697,7 @@ usage (FILE *stream, int status)
|
||||||
-T --target=<BFDNAME> Specify the binary file format\n\
|
-T --target=<BFDNAME> Specify the binary file format\n\
|
||||||
-e --encoding={s,S,b,l,B,L} Select character size and endianness:\n\
|
-e --encoding={s,S,b,l,B,L} Select character size and endianness:\n\
|
||||||
s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n\
|
s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n\
|
||||||
|
-s --output-separator=<string> String used to separate strings in output.\n\
|
||||||
@<file> Read options from <file>\n\
|
@<file> Read options from <file>\n\
|
||||||
-h --help Display this information\n\
|
-h --help Display this information\n\
|
||||||
-v -V --version Print the program's version number\n"));
|
-v -V --version Print the program's version number\n"));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue