[PATCH 0/3] cmd: setexpr: add fmt format string operation

Wolfgang Denk wd at denx.de
Tue Jun 29 10:37:25 CEST 2021


Dear Roland,

In message <20210628151750.572837-1-roland.gaudig-oss at weidmueller.com> you wrote:
>
>
> U-Boot uses almost everywhere hexadecimal numbers. But some bootargs
> passed to Linux are expecting decimal numbers. As long as the values
> are in the range 0 to 9 it is sufficient to just strip 0x from the
> number. But for greater values a method for converting numbers to
> decimal is needed.
>
> This patch adds C like format string capabilities to the setexpr
> command. Here are some examples:

Thanks!

> In contrast to the original C format strings the number of parameters
> is limited to one. As the get_arg() function returns unsigned long
> type, the format string commands are limited to those which are
> operating on unsigned long type.

These are two pretty unfortunate restrictions.  I guess it should
not be too hard to avoid both of these.  Can you please give it a
try?

I think it is reasonable to assume (and specify) that, when the
"fmt" option is used, _all_ following arguments will be passed
(unchanged) to the sprintf() function.

This was actually one of my intentions when making this suggestion -
to be able to construct any kind of data from pieces; say, for
example:

=> setexpr foo fmt "%0x08x-%s-%d-%s" $a $b $c $d

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Never ascribe to malice that which can  adequately  be  explained  by
stupidity.


More information about the U-Boot mailing list