diff options
author | Randall Spangler <rspangler@chromium.org> | 2013-03-29 12:40:07 -0700 |
---|---|---|
committer | ChromeBot <chrome-bot@google.com> | 2013-03-29 15:39:34 -0700 |
commit | 97bf36c9d3ad3d96ad6dea7cd6e6f3e164297c43 (patch) | |
tree | 5d4ba65334beb071e4cc09d8a404e859bca398ac /common/util.c | |
parent | c317992194ea089a97c4d54ef77ff4b1e283c248 (diff) | |
download | chrome-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.c | 14 |
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) { |