X-Git-Url: https://git.kernelconcepts.de/?a=blobdiff_plain;f=common%2Fcmd_itest.c;h=76af62b46ee274841a65c0eb8f040d75aa2ad02b;hb=767d85aea1caef40727db808a1c8a481bdb2358c;hp=2c8e5d05e141ddf936d2b4b6fdf122730ed600dc;hpb=1cc619be8b73abbee2fd6faf2cd4ade27b516531;p=karo-tx-uboot.git diff --git a/common/cmd_itest.c b/common/cmd_itest.c index 2c8e5d05e1..76af62b46e 100644 --- a/common/cmd_itest.c +++ b/common/cmd_itest.c @@ -2,23 +2,7 @@ * (C) Copyright 2003 * Tait Electronics Limited, Christchurch, New Zealand * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA + * SPDX-License-Identifier: GPL-2.0+ */ /* @@ -79,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) @@ -87,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; }