summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--misc.c12
1 files changed, 10 insertions, 2 deletions
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;
}