]> git.baikalelectronics.ru Git - uboot.git/commitdiff
nvedit: simplify do_env_indirect()
authorRasmus Villemoes <rasmus.villemoes@prevas.dk>
Mon, 6 Mar 2023 13:27:21 +0000 (14:27 +0100)
committerTom Rini <trini@konsulko.com>
Thu, 30 Mar 2023 19:09:59 +0000 (15:09 -0400)
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>
cmd/nvedit.c

index 7cbc3fd573a0bb5ccc377c5076cb5634f6846dc7..12eae0627bb882f0e2ee19c18854f2462b389507 100644 (file)
@@ -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;