Linus Torvalds <torva...@linux-foundation.org> writes:

> On Tue, Dec 13, 2016 at 12:38 PM, Junio C Hamano <gits...@pobox.com> wrote:
>> Johannes Schindelin <johannes.schinde...@gmx.de> writes:
>>
>>> +/*
>>> + * Note that ordering matters in this enum. Not only must it match the 
>>> mapping
>>> + * below, it is also divided into several sections that matter.  When 
>>> adding
>>> + * new commands, make sure you add it in the right section.
>>> + */
>>
>> Good thinking.  Makes me wish C were a better language, though ;-)
>
> Do this:
>
>   static const char *todo_command_strings[] = {
>       [TODO_PICK] = "pick",
>       [TODO_REVERT] = "revert",
>       [TODO_NOOP] = "noop:,
>   };
>
> which makes the array be order-independent. You still need to make
> sure you fill in all the entries, of course, but it tends to avoid at
> least one gotcha, and it makes it more obvious how the two are tied
> together.
>
>               Linus

Yes, I know.  But I do not think the variant of C we stick to is not
new enough to have that.

Reply via email to