From dcf17f88c617abe4d75b65666a78cca396e5d10e Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Sun, 8 Sep 2024 17:05:42 +0200 Subject: grijp: minder strtok(3) --- src/grijp.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/grijp.c b/src/grijp.c index add2806..a616959 100644 --- a/src/grijp.c +++ b/src/grijp.c @@ -96,16 +96,22 @@ static void parse_patterns() { patterns = calloc(cappat, sizeof(char*)); char *s = gpats; - char *pat = NULL; - while ((pat = strtok(s, "\n")) != NULL) { - s = NULL; + size_t cursor = 0; + while (true) { + const size_t lfidx = strchrnul(s + cursor, '\n') - s; + const bool last = s[lfidx] == '\0'; + s[lfidx] = '\0'; if (npat == cappat) { cappat *= 2; patterns = realloc(patterns, sizeof(char*)*cappat); } - patterns[npat] = strdup(pat); + patterns[npat] = strdup(s + cursor); npat++; + + cursor = lfidx + 1; + + if (last) break; } } -- cgit v1.2.3-70-g09d2