Commit 9358381d authored by Roger Dingledine's avatar Roger Dingledine
Browse files

break out the string manipulation routines


svn:r804
parent 3b392717
Loading
Loading
Loading
Loading
+38 −0
Original line number Diff line number Diff line
@@ -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;
}
+4 −0
Original line number Diff line number Diff line
@@ -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);