diff options
author | mrb0nk500 <b0nk@b0nk.xyz> | 2022-07-27 15:55:42 -0300 |
---|---|---|
committer | mrb0nk500 <b0nk@b0nk.xyz> | 2022-07-27 15:55:42 -0300 |
commit | fcf4fcb23c0ae3f74d80a23e6b4b4ace02c0b968 (patch) | |
tree | 08f4baa0134b67a127f70ad2d8cc2a3b4c8f46e8 /misc.c | |
parent | a459d34d124a2993a313d29cf8b84a5d0df42e87 (diff) |
misc: Make `find_delm()` account for escaped delimiters.
Diffstat (limited to 'misc.c')
-rw-r--r-- | misc.c | 12 |
1 files changed, 10 insertions, 2 deletions
@@ -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; } |