break out the string manipulation routines

svn:r804
This commit is contained in:
Roger Dingledine 2003-11-12 19:34:19 +00:00
parent 3b392717e0
commit 9358381d83
2 changed files with 42 additions and 0 deletions

View File

@ -48,6 +48,43 @@ char *tor_strdup(const char *s) {
return dup;
}
/*
* 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;
}

View File

@ -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);