From: Sébastien Guimmara Date: Fri, 08 May 2015 21:08:01 GMT Subject: Re: [PATCH 3/3] git help: group common commands by theme Message-ID: <554D25B1.8050605@gmail.com> In-Reply-To: On 05/06/2015 05:16 AM, Eric Sunshine wrote: > On Mon, May 4, 2015 at 4:28 PM, Sébastien Guimmara >> + >> + if (group1 == group2) >> + return 0; >> + if (group1 > group2) >> + return 1; >> + else >> + return -1; > > Do you also want to sort the commands alphabetically within group? > That is, something like this? > > struct cmdname_help *e1 = elem1; > struct cmdname_help *e2 = elem2; > > if (e1->group < e2->group) > return -1; > if (e1->group > e2->group) > return 1; > return strcmp(e1->name, e2->name); > >> +} Your version raises: help.c: In function ‘cmd_group_cmp’: help.c:223:28: warning: initialization discards ‘const’ qualifier from pointer target type [enabled by default] struct cmdname_help *e1 = elem1; ^ help.c:224:28: warning: initialization discards ‘const’ qualifier from pointer target type [enabled by default] struct cmdname_help *e2 = elem2; ^ With the cast: struct cmdname_help *e1 = (struct cmdname_help*)elem1; It compiles without a warning (gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2) >> + >> void list_common_cmds_help(void) >> { >> int i, longest = 0; >> + unsigned char current_grp = -1; >> >> for (i = 0; i < ARRAY_SIZE(common_cmds); i++) { >> if (longest < strlen(common_cmds[i].name)) >> longest = strlen(common_cmds[i].name); >> } >> >> + qsort(common_cmds, ARRAY_SIZE(common_cmds), >> + sizeof(common_cmds[0]), cmd_group_cmp); >> + >> puts(_("The most commonly used git commands are:")); >> + >> for (i = 0; i < ARRAY_SIZE(common_cmds); i++) { >> - printf(" %s ", common_cmds[i].name); >> + if (common_cmds[i].group != current_grp) { >> + printf("\n * %s:\n", _(common_cmd_groups[common_cmds[i].group])); >> + } > > Style: Drop unnecessary braces. > >> + current_grp = common_cmds[i].group; > > Alternately, move this assignment inside the braces. > >> + printf(" %s ", common_cmds[i].name); >> mput_char(' ', longest - strlen(common_cmds[i].name)); >> puts(_(common_cmds[i].help)); >> } >> -- >> 2.4.0 >