int parse_boolean(const char *v) {
assert(v);
- if (!strcmp(v, "1") || v[0] == 'y' || v[0] == 'Y' || v[0] == 't' || v[0] == 'T' || !strcasecmp(v, "on"))
+ if (streq(v, "1") || v[0] == 'y' || v[0] == 'Y' || v[0] == 't' || v[0] == 'T' || !strcasecmp(v, "on"))
return 1;
- else if (!strcmp(v, "0") || v[0] == 'n' || v[0] == 'N' || v[0] == 'f' || v[0] == 'F' || !strcasecmp(v, "off"))
+ else if (streq(v, "0") || v[0] == 'n' || v[0] == 'N' || v[0] == 'f' || v[0] == 'F' || !strcasecmp(v, "off"))
return 0;
return -EINVAL;
return 0;
}
-/* What is interpreted as whitespace? */
-#define WHITESPACE " \t\n"
-
/* Split a string into words. */
char *split_spaces(const char *c, size_t *l, char **state) {
char *current;
*state = current+*l;
}
+ /* FIXME: Cannot deal with strings that have spaces AND ticks
+ * in them */
+
return (char*) current;
}
fclose(f);
return r;
}
+
+char *strappend(const char *s, const char *suffix) {
+ size_t a, b;
+ char *r;
+
+ assert(s);
+ assert(suffix);
+
+ a = strlen(s);
+ b = strlen(suffix);
+
+ if (!(r = new(char, a+b+1)))
+ return NULL;
+
+ memcpy(r, s, a);
+ memcpy(r+a, suffix, b);
+ r[a+b] = 0;
+
+ return r;
+}