Le 12/02/2011 00:11, Kim Phillips a écrit :
> On Fri, 11 Feb 2011 23:41:43 +0100
> Wolfgang Denk<[email protected]>  wrote:
>
>> +                    case 'V':
>> +                            /*
>> +                             * Skip the "U-Boot " part in
>> +                             * U_BOOT_VERSION by adding 7
>> +                             */
>> +                            printf("mkimage version %s\n",
>> +                                    U_BOOT_VERSION + 7);

Now I get it. :)

I might argue that this is kind of a hack, and that rather than trying 
to prune the U_BOOT_VERSION string, one should define two macros, for 
instance:

        #define PLAIN_VERSION "whatever"
        #define U_BOOT_VERSION "U-Boot " PLAIN_VERSION

... which has the advantage of not affecting the existing code, or a 
cleaner, but more invasive, change...

        #define U_BOOT_VERSION "whatever" /* without "U-Boot " */
        #define U_BOOT_VERSION_BANNER "U-Boot " U_BOOT_VERSION

... and use the right macro for the right need.

> I'd have done it without magic nor comments as
>
> U_BOOT_VERSION[sizeof("U-Boot ") + 1]
>
> or even
>
> U_BOOT_VERSION[strlen("U-Boot ")]

The second one calls strlen() at run-time, plus it allocates the "U-Boot 
" string for no justifiable reason -- assuming the first one can be 
compile-time evaluated by the compiler, of course.

> Kim

Amicalement,
-- 
Albert.
_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to