summaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorYaniv Levinsky <yaniv.levinsky@compulab.co.il>2018-06-24 19:16:57 +0300
committerTom Rini <trini@konsulko.com>2018-07-19 16:17:58 -0400
commitc5d548a9f881b2268f1d81dab9cd329ae336607e (patch)
tree5a0e567d718a3d1816ab6ce8145be83067bca46b /cmd
parent5a04264ecf5f0f853f2d562b4c5efb139d3d4a9d (diff)
downloadu-boot-c5d548a9f881b2268f1d81dab9cd329ae336607e.tar.gz
env: common: accept flags on reset to default env
The function set_default_env() sets the hashtable flags for import_r(). Formally set_default_env() doesn't accept flags from its callers. In practice the caller can (un)set the H_INTERACTIVE flag, but it has to be done using the first character of the function's string argument. Other flags like H_FORCE can't be set by the caller. Change the function to accept flags argument. The benefits are: 1. The caller will have to explicitly set the H_INTERACTIVE flag, instead of un-setting it using a special char in a string. 2. Add the ability to propagate flags from the caller to himport(), especially the H_FORCE flag from do_env_default() in nvedit.c that currently gets ignored for "env default -a -f" commands. 3. Flags and messages will not be coupled together. A caller will be able to set flags without passing a string and vice versa. Please note: The propagation of H_FORCE from do_env_default() does not introduce any functional changes, because currently himport_r() is set to destroy the old environment regardless if H_FORCE flag is set or not. More changes are needed to utilize the propagation of H_FORCE. Signed-off-by: Yaniv Levinsky <yaniv.levinsky@compulab.co.il> Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Diffstat (limited to 'cmd')
-rw-r--r--cmd/nvedit.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/cmd/nvedit.c b/cmd/nvedit.c
index 8b73c606ca..796867c62c 100644
--- a/cmd/nvedit.c
+++ b/cmd/nvedit.c
@@ -802,7 +802,8 @@ static int do_env_default(cmd_tbl_t *cmdtp, int flag,
debug("Final value for argc=%d\n", argc);
if (all && (argc == 0)) {
/* Reset the whole environment */
- set_default_env("## Resetting to default environment\n");
+ set_default_env("## Resetting to default environment\n",
+ env_flag);
return 0;
}
if (!all && (argc > 0)) {