Multiple nonopt arguments seems to have never worked, because the value
was always extracted out of the first non-opt argument. After the first
iteration, it'll have it's '=' stripped and thus value == NULL for all i
> 0. Fix this.

Before:
  $ nv a=1 b=2 c=3
  $ echo "[$nv.a $nv.b $nv.c]"
  [1  ]

After:
  $ nv a=1 b=2 c=3
  $ echo "[$nv.a $nv.b $nv.c]"
  [1 2 3]

Fixes: 0c2fccceb625 ("nv: Allow to set/remove multiple variables with one 
command")
Signed-off-by: Ahmad Fatoum <[email protected]>
---
 commands/nv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/commands/nv.c b/commands/nv.c
index 8d4192402ca5..fa865811dce2 100644
--- a/commands/nv.c
+++ b/commands/nv.c
@@ -55,7 +55,7 @@ static int do_nv(int argc, char *argv[])
 
        for (i = 0; i < argc; i++) {
                int ret;
-               value = strchr(argv[0], '=');
+               value = strchr(argv[i], '=');
                if (value) {
                        *value = 0;
                        value++;
-- 
2.28.0


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to