diff options
author | Roger Dingledine <arma@torproject.org> | 2003-11-12 19:34:19 +0000 |
---|---|---|
committer | Roger Dingledine <arma@torproject.org> | 2003-11-12 19:34:19 +0000 |
commit | 9358381d83d0d27db58c94cf01ab45c16292d378 (patch) | |
tree | 594c28dd884e936dec33f7e87deb7921523c53a8 | |
parent | 3b392717e00d07aa12ab07432bf28d55bb86b3e5 (diff) | |
download | tor-9358381d83d0d27db58c94cf01ab45c16292d378.tar tor-9358381d83d0d27db58c94cf01ab45c16292d378.tar.gz |
break out the string manipulation routines
svn:r804
-rw-r--r-- | src/common/util.c | 38 | ||||
-rw-r--r-- | src/common/util.h | 4 |
2 files changed, 42 insertions, 0 deletions
diff --git a/src/common/util.c b/src/common/util.c index c81d0fe87..af0f32231 100644 --- a/src/common/util.c +++ b/src/common/util.c @@ -49,6 +49,43 @@ char *tor_strdup(const char *s) { } /* + * String manipulation + */ + +/* return the first char of s that is not whitespace and not a comment */ +char *eat_whitespace(char *s) { + assert(s); + + while(isspace(*s) || *s == '#') { + while(isspace(*s)) + s++; + if(*s == '#') { /* read to a \n or \0 */ + while(*s && *s != '\n') + s++; + if(!*s) + return s; + } + } + return s; +} + +char *eat_whitespace_no_nl(char *s) { + while(*s == ' ' || *s == '\t') + ++s; + return s; +} + +/* return the first char of s that is whitespace or '#' or '\0 */ +char *find_whitespace(char *s) { + assert(s); + + while(*s && !isspace(*s) && *s != '#') + s++; + + return s; +} + +/* * Time */ @@ -653,3 +690,4 @@ int switch_id(char *user, char *group) { return -1; } + diff --git a/src/common/util.h b/src/common/util.h index 15893f160..f1c744b01 100644 --- a/src/common/util.h +++ b/src/common/util.h @@ -37,6 +37,10 @@ void *tor_realloc(void *ptr, size_t size); char *tor_strdup(const char *s); #define tor_free(p) do {if(p) {free(p); (p)=NULL;}} while(0) +char *eat_whitespace(char *s); +char *eat_whitespace_no_nl(char *s); +char *find_whitespace(char *s); + void tor_gettimeofday(struct timeval *timeval); long tv_udiff(struct timeval *start, struct timeval *end); void tv_addms(struct timeval *a, long ms); |