From fcf4fcb23c0ae3f74d80a23e6b4b4ace02c0b968 Mon Sep 17 00:00:00 2001 From: mrb0nk500 Date: Wed, 27 Jul 2022 15:55:42 -0300 Subject: misc: Make `find_delm()` account for escaped delimiters. --- misc.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'misc.c') diff --git a/misc.c b/misc.c index 8246ba1..63cac3d 100644 --- a/misc.c +++ b/misc.c @@ -71,8 +71,16 @@ char *get_line(char **str) { char *find_delm(char *str, const char *delm, int skip_delm) { if (!is_empty(str)) { - const size_t span = strcspn(str, delm); - return &str[(skip_delm) ? strspn(&str[span], delm) : span]; + char *s; + for (s = str; *s != '\0'; s += strcspn(s, delm)) { + if (*s++ == '\\') { + s += strspn(s, delm); + continue; + } else { + break; + } + } + return (skip_delm) ? &s[strspn(s, delm)] : s; } else { return NULL; } -- cgit v1.2.3-13-gbd6f