]> cloudbase.mooo.com Git - z180-stamp.git/commitdiff
New function: getenv_yesno()
authorLeo C <erbl259-lmu@yahoo.de>
Fri, 15 Apr 2016 13:29:18 +0000 (15:29 +0200)
committerLeo C <erbl259-lmu@yahoo.de>
Fri, 15 Apr 2016 13:29:18 +0000 (15:29 +0200)
Get boolean value (0/f/n or 1/t/y) of environment variable.

avr/env.c
include/env.h

index c4837d52cf29190fba06e9476904a4a4f598ae56..6fbeb01188206d4f16a4a141182370b112fa112b 100644 (file)
--- a/avr/env.c
+++ b/avr/env.c
@@ -7,6 +7,7 @@
 #include "common.h"
 #include <string.h>
 #include <stdlib.h>
+#include <stdbool.h>
 #include <avr/eeprom.h>
 
 #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;
index c7e49cabf7672f49636d7f89de243c398262ace0..63bd7d227d954ae231406190b61e1009fc77d59c 100644 (file)
@@ -1,16 +1,19 @@
 /*
  * (C) Copyright 2014 Leo C. <erbl259-lmu@yahoo.de>
  *
- * SPDX-License-Identifier:    GPL-2.0+
+ * SPDX-License-Identifier:    GPL-2.0
  */
 
 #ifndef ENV_H
 #define ENV_H
 
+#include <stdbool.h>
+
 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);