From be84a704bf7cb5505c42486e4ace33abab48470d Mon Sep 17 00:00:00 2001 From: Leo C Date: Fri, 15 Apr 2016 15:29:18 +0200 Subject: [PATCH 1/1] New function: getenv_yesno() Get boolean value (0/f/n or 1/t/y) of environment variable. --- avr/env.c | 19 +++++++++++++++++++ include/env.h | 5 ++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/avr/env.c b/avr/env.c index c4837d5..6fbeb01 100644 --- a/avr/env.c +++ b/avr/env.c @@ -7,6 +7,7 @@ #include "common.h" #include #include +#include #include #include "config.h" @@ -624,6 +625,24 @@ unsigned long getenv_ulong(const MEMX char *name, int base, unsigned long defaul } +/* + * Read an environment variable as a boolean + */ +bool getenv_yesno(const MEMX char *name) +{ + char *s = getenv_char(name); + + if (s == NULL) + return false; + + return strchr_P(PSTR("1yYtT"), *s) != NULL; + +/* + return *s == '1' || *s == 'y' || *s == 'Y' || *s == 't' || *s == 'T' ? + 1 : 0; +*/ +} + command_ret_t do_env_print(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { command_ret_t rc = CMD_RET_SUCCESS; diff --git a/include/env.h b/include/env.h index c7e49ca..63bd7d2 100644 --- a/include/env.h +++ b/include/env.h @@ -1,16 +1,19 @@ /* * (C) Copyright 2014 Leo C. * - * SPDX-License-Identifier: GPL-2.0+ + * SPDX-License-Identifier: GPL-2.0 */ #ifndef ENV_H #define ENV_H +#include + int env_init(void); char *getenv_char(const MEMX char *name); unsigned long getenv_ulong(const MEMX char *name, int base, unsigned long default_val); +bool getenv_yesno(const MEMX char *name); int setenv_ulong(const MEMX char *varname, unsigned long value); int setenv_hex(const MEMX char *varname, unsigned long value); -- 2.39.2