summaryrefslogtreecommitdiff
path: root/common/util.c
diff options
context:
space:
mode:
authorRandall Spangler <rspangler@chromium.org>2013-03-29 12:40:07 -0700
committerChromeBot <chrome-bot@google.com>2013-03-29 15:39:34 -0700
commit97bf36c9d3ad3d96ad6dea7cd6e6f3e164297c43 (patch)
tree5d4ba65334beb071e4cc09d8a404e859bca398ac /common/util.c
parentc317992194ea089a97c4d54ef77ff4b1e283c248 (diff)
downloadchrome-ec-97bf36c9d3ad3d96ad6dea7cd6e6f3e164297c43.tar.gz
Add parse_bool() to centralize parsing boolean options
This way debug commands which previously took only yes/no or on/off or enable/disable can take any of those options. BUG=chrome-os-partner:18467 BRANCH=none TEST=Try "on", "off", "yes", "no", "true", "false", "ena", "disable", for each of the following commands: - ilim (spring) - pll (link) - power (spring/snow) - hcdebug (all) - kblog (link) - ksscan (all) - lp5562 (spring) Change-Id: Ie8e0fae3775b1da711864bcba6682ba5e68a06f1 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/46900 Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Diffstat (limited to 'common/util.c')
-rw-r--r--common/util.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/common/util.c b/common/util.c
index a8e154b896..d8670759c1 100644
--- a/common/util.c
+++ b/common/util.c
@@ -138,6 +138,20 @@ int strtoi(const char *nptr, char **endptr, int base)
return neg ? -result : result;
}
+int parse_bool(const char *s, int *dest)
+{
+ if (!strcasecmp(s, "off") || !strncasecmp(s, "dis", 3) ||
+ tolower(*s) == 'f' || tolower(*s) == 'n') {
+ *dest = 0;
+ return 1;
+ } else if (!strcasecmp(s, "on") || !strncasecmp(s, "ena", 3) ||
+ tolower(*s) == 't' || tolower(*s) == 'y') {
+ *dest = 1;
+ return 1;
+ } else {
+ return 0;
+ }
+}
int memcmp(const void *s1, const void *s2, int len)
{