diff options
author | Simon Glass <sjg@chromium.org> | 2013-02-24 17:33:22 +0000 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2013-02-28 19:09:23 -0800 |
commit | 41ef372c1a2d344621c74aa4bce5cdb0970ba5f1 (patch) | |
tree | 9abdeda0b3b87a70e4f3929e83ddd15f4704377f /common/cmd_setexpr.c | |
parent | bfc59966431e6335fd5be0589eec073902cc7bb3 (diff) | |
download | u-boot-41ef372c1a2d344621c74aa4bce5cdb0970ba5f1.zip u-boot-41ef372c1a2d344621c74aa4bce5cdb0970ba5f1.tar.gz u-boot-41ef372c1a2d344621c74aa4bce5cdb0970ba5f1.tar.bz2 |
common: Use new numeric setenv functions
Use setenv_ulong(), setenv_hex() and setenv_addr() in common/
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'common/cmd_setexpr.c')
-rw-r--r-- | common/cmd_setexpr.c | 39 |
1 files changed, 27 insertions, 12 deletions
diff --git a/common/cmd_setexpr.c b/common/cmd_setexpr.c index 5a04295..7a38e94 100644 --- a/common/cmd_setexpr.c +++ b/common/cmd_setexpr.c @@ -53,7 +53,7 @@ static ulong get_arg(char *s, int w) static int do_setexpr(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { ulong a, b; - char buf[16]; + ulong value; int w; /* Validate arguments */ @@ -67,8 +67,7 @@ static int do_setexpr(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) a = get_arg(argv[2], w); if (argc == 3) { - sprintf(buf, "%lx", a); - setenv(argv[1], buf); + setenv_hex(argv[1], a); return 0; } @@ -76,20 +75,36 @@ static int do_setexpr(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) b = get_arg(argv[4], w); switch (argv[3][0]) { - case '|': sprintf(buf, "%lx", (a | b)); break; - case '&': sprintf(buf, "%lx", (a & b)); break; - case '+': sprintf(buf, "%lx", (a + b)); break; - case '^': sprintf(buf, "%lx", (a ^ b)); break; - case '-': sprintf(buf, "%lx", (a - b)); break; - case '*': sprintf(buf, "%lx", (a * b)); break; - case '/': sprintf(buf, "%lx", (a / b)); break; - case '%': sprintf(buf, "%lx", (a % b)); break; + case '|': + value = a | b; + break; + case '&': + value = a & b; + break; + case '+': + value = a + b; + break; + case '^': + value = a ^ b; + break; + case '-': + value = a - b; + break; + case '*': + value = a * b; + break; + case '/': + value = a / b; + break; + case '%': + value = a % b; + break; default: printf("invalid op\n"); return 1; } - setenv(argv[1], buf); + setenv_hex(argv[1], value); return 0; } |