diff options
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; } |