}
if (probenum < 1 || probenum > max_probes) {
- sr_err("strutil: Invalid probe (%d).\n", probenum);
+ sr_err("strutil: Invalid probe (%d).", probenum);
error = TRUE;
break;
}
for (tc = ++trigger; *tc; tc++) {
if (strchr(trigger_types, *tc) == NULL) {
sr_err("strutil: Unsupported trigger "
- "type '%c'.\n", *tc);
+ "type '%c'.", *tc);
error = TRUE;
break;
}
if (!boolstr)
return FALSE;
- if (!g_strcasecmp(boolstr, "true") ||
- !g_strcasecmp(boolstr, "yes") ||
- !g_strcasecmp(boolstr, "on") ||
- !g_strcasecmp(boolstr, "1"))
+ if (!g_ascii_strncasecmp(boolstr, "true", 4) ||
+ !g_ascii_strncasecmp(boolstr, "yes", 3) ||
+ !g_ascii_strncasecmp(boolstr, "on", 2) ||
+ !g_ascii_strncasecmp(boolstr, "1", 1))
return TRUE;
return FALSE;
}
+
+SR_API int sr_parse_period(const char *periodstr, struct sr_rational *r)
+{
+ char *s;
+
+ r->p = strtoull(periodstr, &s, 10);
+ if (r->p == 0 && s == periodstr)
+ /* No digits found. */
+ return SR_ERR_ARG;
+
+ if (s && *s) {
+ while (*s == ' ')
+ s++;
+ if (!strcmp(s, "ns"))
+ r->q = 1000000000L;
+ else if (!strcmp(s, "us"))
+ r->q = 1000000;
+ else if (!strcmp(s, "ms"))
+ r->q = 1000;
+ else if (!strcmp(s, "s"))
+ r->q = 1;
+ else
+ /* Must have a time suffix. */
+ return SR_ERR_ARG;
+ }
+
+ return SR_OK;
+}
+
+