diff options
Diffstat (limited to 'src/common/util.c')
-rw-r--r-- | src/common/util.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/common/util.c b/src/common/util.c index c566bfe229..3ab72a5745 100644 --- a/src/common/util.c +++ b/src/common/util.c @@ -418,6 +418,36 @@ eat_whitespace(const char *s) } } +/** Return a pointer to the first char of s before <b>eos</b> that is not + * whitespace and not a comment, or to the terminating NUL or eos if no such + * character exists. + */ +const char * +eat_whitespace_eos(const char *s, const char *eos) +{ + tor_assert(s); + tor_assert(eos && s <= eos); + + while (s < eos) { + switch (*s) { + case '\0': + default: + return s; + case ' ': + case '\t': + case '\n': + case '\r': + ++s; + break; + case '#': + ++s; + while (s < eos && *s && *s != '\n') + ++s; + } + } + return s; +} + /** Return a pointer to the first char of s that is not a space or a tab, * or to the terminating NUL if no such character exists. */ const char * |