[U-Boot] [RFC PATCH 6/7] env: Introduce setenv_transient() helper function
Bernhard Nortmann
bernhard.nortmann at web.de
Mon Jul 11 20:14:53 CEST 2016
Like setenv(), but automatically marks the entry as "don't export".
Signed-off-by: Bernhard Nortmann <bernhard.nortmann at web.de>
---
cmd/nvedit.c | 21 +++++++++++++++++++++
include/common.h | 1 +
2 files changed, 22 insertions(+)
diff --git a/cmd/nvedit.c b/cmd/nvedit.c
index 88dbcb9..3c408f6 100644
--- a/cmd/nvedit.c
+++ b/cmd/nvedit.c
@@ -300,6 +300,27 @@ int setenv(const char *varname, const char *varvalue)
}
/**
+ * Set a "transient" environment variable
+ *
+ * Like setenv(), but this automatically marks the
+ * resulting entry as transient (= "do not export").
+ */
+int setenv_transient(const char *varname, const char *varvalue)
+{
+ int rc = setenv(varname, varvalue);
+ if (rc == 0) {
+ ENTRY e, *ep;
+
+ e.key = varname;
+ e.data = NULL;
+ hsearch_r(e, FIND, &ep, &env_htab, 0);
+ if (ep)
+ ep->flags |= ENV_FLAGS_VARACCESS_PREVENT_EXPORT;
+ }
+ return rc;
+}
+
+/**
* Set an environment variable to an integer value
*
* @param varname Environment variable to set
diff --git a/include/common.h b/include/common.h
index 3feaae6..a8e019a 100644
--- a/include/common.h
+++ b/include/common.h
@@ -380,6 +380,7 @@ ulong getenv_hex(const char *varname, ulong default_val);
int getenv_yesno(const char *var);
int saveenv (void);
int setenv (const char *, const char *);
+int setenv_transient(const char *, const char *);
int setenv_ulong(const char *varname, ulong value);
int setenv_hex(const char *varname, ulong value);
/**
--
2.7.3
More information about the U-Boot
mailing list