From 12ad81fa245ee1c9e37a7527741a08bd3ba7df5a Mon Sep 17 00:00:00 2001 From: sin Date: Thu, 10 Oct 2013 16:04:15 +0100 Subject: [PATCH] Allow strings(1) to operate on more than one file --- strings.1 | 2 +- strings.c | 16 +++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/strings.1 b/strings.1 index 11e2293..3d8cdff 100644 --- a/strings.1 +++ b/strings.1 @@ -3,7 +3,7 @@ strings \- print the strings of printable characters in files .SH SYNOPSIS .B strings -.IR [file...] +.IR file... .SH DESCRIPTION .B strings prints the printable character sequences that are at least 6 characters diff --git a/strings.c b/strings.c index ff2ca18..c407b56 100644 --- a/strings.c +++ b/strings.c @@ -9,7 +9,7 @@ static void dostrings(FILE *fp, const char *fname); static void usage(void) { - eprintf("usage: %s file\n", argv0); + eprintf("usage: %s file...\n", argv0); } int @@ -22,13 +22,15 @@ main(int argc, char *argv[]) usage(); } ARGEND; - if (argc > 0) { - if (!(fp = fopen(argv[0], "r"))) - eprintf("open %s:", argv[0]); - dostrings(fp, argv[0]); - fclose(fp); - } else { + if (argc == 0) { dostrings(stdin, ""); + } else { + for (; argc > 0; argc--, argv++) { + if (!(fp = fopen(argv[0], "r"))) + eprintf("open %s:", argv[0]); + dostrings(fp, argv[0]); + fclose(fp); + } } return EXIT_SUCCESS;