diff options
Diffstat (limited to 'strings.c')
-rw-r--r-- | strings.c | 156 |
1 files changed, 78 insertions, 78 deletions
@@ -24,93 +24,93 @@ #include <getopt.h> const char *strings_desc = "find printable strings in files"; -const char *strings_inv = "strings [-a] [-t format] -[n number] [file...]"; +const char *strings_inv = "strings [-a] [-t format] -[n number] [file...]"; -static int strings (FILE *f, int number, char format) +static int strings(FILE * f, int number, char format) { - char buf[BUFSIZ]; - char tbuf[BUFSIZ]; - int nread; - int offset = 0; - int i; - int count = 0; + char buf[BUFSIZ]; + char tbuf[BUFSIZ]; + int nread; + int offset = 0; + int i; + int count = 0; - while (!feof (f)) { - nread = fread (buf, sizeof(char), BUFSIZ, f); - for (i = 0; i < nread; i++) { - if (buf[i] == '\0' || buf[i] == '\n') { - if (count >= number) { - switch (format) { - case 'd': - printf ("%d ", offset - count); - break; - case 'o': - printf ("%o ", offset - count); - break; - case 'x': - printf ("%x ", offset - count); - break; - default: - break; - } - fwrite (tbuf, sizeof(char), count, stdout); - putchar ('\n'); - } - count = 0; - } else if (isprint(buf[i])) { - tbuf[count] = buf[i]; - count++; - } else { - count = 0; - } - offset++; - } - } - return 0; + while (!feof(f)) { + nread = fread(buf, sizeof(char), BUFSIZ, f); + for (i = 0; i < nread; i++) { + if (buf[i] == '\0' || buf[i] == '\n') { + if (count >= number) { + switch (format) { + case 'd': + printf("%d ", offset - count); + break; + case 'o': + printf("%o ", offset - count); + break; + case 'x': + printf("%x ", offset - count); + break; + default: + break; + } + fwrite(tbuf, sizeof(char), count, + stdout); + putchar('\n'); + } + count = 0; + } else if (isprint(buf[i])) { + tbuf[count] = buf[i]; + count++; + } else { + count = 0; + } + offset++; + } + } + return 0; } -int -main(int argc, char **argv) +int main(int argc, char **argv) { - int c; - int number = 4; - char format = 0; - char *end; + int c; + int number = 4; + char format = 0; + char *end; - while ((c = getopt (argc, argv, ":an:t:")) != -1) { - switch (c) { - case 'a': - // Always scan the entire file - break; - case 'n': - number = strtol (optarg, &end, 10); - if (end != NULL && strlen (end) > 0) - return 1; - break; - case 't': - if (strlen(optarg) != 1) - return 1; - format = optarg[0]; - break; - default: - return 1; - } - } + while ((c = getopt(argc, argv, ":an:t:")) != -1) { + switch (c) { + case 'a': + // Always scan the entire file + break; + case 'n': + number = strtol(optarg, &end, 10); + if (end != NULL && strlen(end) > 0) + return 1; + break; + case 't': + if (strlen(optarg) != 1) + return 1; + format = optarg[0]; + break; + default: + return 1; + } + } - if ((format != 0 && format != 'd' && format != 'o' && format != 'x') - || number < 1) - return 1; + if ((format != 0 && format != 'd' && format != 'o' && format != 'x') + || number < 1) + return 1; - if (optind >= argc) { - strings (stdin, number, format); - } + if (optind >= argc) { + strings(stdin, number, format); + } - while (optind < argc) { - FILE *f = fopen (argv[optind], "r"); - strings (f, number, format); - fclose (f); - optind++; - } + while (optind < argc) { + FILE *f = fopen(argv[optind], "r"); + strings(f, number, format); + fclose(f); + optind++; + } - return 0; + return 0; } |