X-Git-Url: https://git.cworth.org/git?p=notmuch;a=blobdiff_plain;f=util%2Fstring-util.c;fp=util%2Fstring-util.c;h=03d7648d329a2e7b3667a894b558e93d440d1a6a;hp=9c46a81a58e20030b586953e577efd777ef2af17;hb=bab633d3ac87167dc214094f9d340655885a01b1;hpb=e22bbb124e4f9191880e80d6517346f35bf7e2a9 diff --git a/util/string-util.c b/util/string-util.c index 9c46a81a..03d7648d 100644 --- a/util/string-util.c +++ b/util/string-util.c @@ -42,13 +42,15 @@ const char * strsplit_len (const char *s, char delim, size_t *len) { bool escaping = false; - size_t count = 0; + size_t count = 0, last_nonspace = 0; - /* Skip initial unescaped delimiters */ - while (*s && *s == delim) + /* Skip initial unescaped delimiters and whitespace */ + while (*s && (*s == delim || isspace (*s))) s++; while (s[count] && (escaping || s[count] != delim)) { + if (! isspace (s[count])) + last_nonspace = count; escaping = (s[count] == '\\'); count++; } @@ -56,7 +58,7 @@ strsplit_len (const char *s, char delim, size_t *len) if (count == 0) return NULL; - *len = count; + *len = last_nonspace + 1; return s; }