X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=common%2Fcmd_itest.c;h=76af62b46ee274841a65c0eb8f040d75aa2ad02b;hb=e721b882e9daf3ad3599eef5a9ccf3847b694228;hp=29f8076f825568833cdc4324b9aaf778e67f4180;hpb=9cc18042e61275210cf888e5759347eeb2a2e297;p=u-boot diff --git a/common/cmd_itest.c b/common/cmd_itest.c index 29f8076f82..76af62b46e 100644 --- a/common/cmd_itest.c +++ b/common/cmd_itest.c @@ -63,7 +63,7 @@ static long evalexp(char *s, int w) l = simple_strtoul(s, NULL, 16); } - return (l & ((1 << (w * 8)) - 1)); + return l & ((1UL << (w * 8)) - 1); } static char * evalstr(char *s) @@ -71,6 +71,19 @@ static char * evalstr(char *s) /* if the parameter starts with a * then assume a string pointer else its a literal */ if (s[0] == '*') { return (char *)simple_strtoul(&s[1], NULL, 16); + } else if (s[0] == '$') { + int i = 2; + + if (s[1] != '{') + return NULL; + + while (s[i] != '}') { + if (s[i] == 0) + return NULL; + i++; + } + s[i] = 0; + return getenv((const char *)&s[2]); } else { return s; }