From 21ef7b9f4a7b4a774e70d7a27abf02ff114b26d9 Mon Sep 17 00:00:00 2001 From: Lieuwe Rooijakkers Date: Thu, 8 Aug 2024 16:12:17 +0200 Subject: grijp: don't open files as binary per default --- src/grijp.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/grijp.c b/src/grijp.c index 29a13b1..2a039b8 100644 --- a/src/grijp.c +++ b/src/grijp.c @@ -20,6 +20,7 @@ static char *gpats; static bool fixed = false; static bool extended = false; static bool icase = false; +static bool binary = false; static size_t npat = 0; static void **patterns = NULL; // can hold `char*` or `regex_t*` @@ -37,7 +38,7 @@ static void usage(FILE *f) { // Returns pointer to argument array containing patterns and then the file names static char** parse_options(int argc, char **argv) { int opt; - while ((opt = getopt(argc, argv, "FiEhV")) != -1) { + while ((opt = getopt(argc, argv, "FiEUhV")) != -1) { switch (opt) { case 'F': fixed = true; @@ -48,6 +49,9 @@ static char** parse_options(int argc, char **argv) { case 'E': extended = true; break; + case 'U': + binary = true; + break; case 'h': usage(stdout); @@ -104,7 +108,7 @@ static void compile_regexps() { } static int process_regex(char *fname, bool isstdin) { - FILE *stream = isstdin ? stdin : fopen(fname, "rb"); + FILE *stream = isstdin ? stdin : fopen(fname, binary ? "rb" : "r"); char *line = NULL; size_t linen = 0; @@ -127,7 +131,7 @@ static int process_regex(char *fname, bool isstdin) { } static int process_fixed(char *fname, bool isstdin) { - FILE *stream = isstdin ? stdin : fopen(fname, "rb"); + FILE *stream = isstdin ? stdin : fopen(fname, binary ? "rb" : "r"); char *line = NULL; size_t linen = 0; -- cgit v1.2.3-70-g09d2