summaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorRasmus Villemoes <rasmus.villemoes@prevas.dk>2023-03-06 14:27:21 +0100
committerTom Rini <trini@konsulko.com>2023-03-30 15:09:59 -0400
commit732b0825475c1a2466a6abf6e223b2a77af011f2 (patch)
tree9e8befd859c20dfbf4213249d91879e931c2e9ff /cmd
parentfef0f1cc38a19f68e215fcc2504b4f60005179a2 (diff)
downloadu-boot-732b0825475c1a2466a6abf6e223b2a77af011f2.tar.gz
nvedit: simplify do_env_indirect()
Instead of calling env_get(from) up to three times, just do it once, computing the value we will put into 'to' and error out if that is NULL (i.e. no 'from' variable and no default provided). No functional change. Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'cmd')
-rw-r--r--cmd/nvedit.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/cmd/nvedit.c b/cmd/nvedit.c
index 7cbc3fd573..12eae0627b 100644
--- a/cmd/nvedit.c
+++ b/cmd/nvedit.c
@@ -1025,6 +1025,7 @@ static int do_env_indirect(struct cmd_tbl *cmdtp, int flag,
char *from = argv[2];
char *default_value = NULL;
int ret = 0;
+ char *val;
if (argc < 3 || argc > 4) {
return CMD_RET_USAGE;
@@ -1034,18 +1035,14 @@ static int do_env_indirect(struct cmd_tbl *cmdtp, int flag,
default_value = argv[3];
}
- if (env_get(from) == NULL && default_value == NULL) {
+ val = env_get(from) ?: default_value;
+ if (!val) {
printf("## env indirect: Environment variable for <from> (%s) does not exist.\n", from);
return CMD_RET_FAILURE;
}
- if (env_get(from) == NULL) {
- ret = env_set(to, default_value);
- }
- else {
- ret = env_set(to, env_get(from));
- }
+ ret = env_set(to, val);
if (ret == 0) {
return CMD_RET_SUCCESS;