Signed-off-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx> --- No changes since v2. --- fs/parseopt.c | 26 ++++++++++++++++++++++++++ fs/parseopt.h | 1 + 2 files changed, 27 insertions(+) diff --git a/fs/parseopt.c b/fs/parseopt.c index 12dbe1813c..8ff83019a7 100644 --- a/fs/parseopt.c +++ b/fs/parseopt.c @@ -2,6 +2,32 @@ #include "parseopt.h" +void parseopt_b(const char *options, const char *opt, bool *val) +{ + const char *start; + size_t optlen = strlen(opt); + +again: + start = strstr(options, opt); + + if (!start) { + *val = false; + return; + } + + if (start > options && start[-1] != ',') { + options = start; + goto again; + } + + if (start[optlen] != ',' && start[optlen] != '\0') { + options = start; + goto again; + } + + *val = true; +} + void parseopt_hu(const char *options, const char *opt, unsigned short *val) { const char *start; diff --git a/fs/parseopt.h b/fs/parseopt.h index a8523b6a10..abf3be3f35 100644 --- a/fs/parseopt.h +++ b/fs/parseopt.h @@ -1 +1,2 @@ +void parseopt_b(const char *options, const char *opt, bool *val); void parseopt_hu(const char *options, const char *opt, unsigned short *val); -- 2.11.0 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox