Re: [RFC PATCH v2] Allow aliases that include other aliases
- From
Tim Schumacher <timschumi@gmx.de>
- Date
- Sep 5, 2018, 19:12 UTC
- Message-ID
- <42223280-d9be-904d-2804-86939ae25aaa@gmx.de>
- In-Reply-To
- <xmqqlg8f50mq.fsf@gitster-ct.c.googlers.com>
On 05.09.18 19:12, Junio C Hamano wrote:
Show 27 quoted lines
> Tim Schumacher <timschumi@gmx.de> writes:
>
>> @@ -691,17 +693,34 @@ static int run_argv(int *argcp, const char ***argv)
>> /* .. then try the external ones */
>> execv_dashed_external(*argv);
>>
>> + /* Increase the array size and add the current
>> + * command to it.
>> + */
>> + cmd_list_alloc += strlen(*argv[0]) + 1;
>> + REALLOC_ARRAY(cmd_list, cmd_list_alloc);
>> + cmd_list[done_alias] = *argv[0];
>> +
>> + /* Search the array for occurrences of that command,
>> + * abort if something has been found.
>> + */
>> + for (int i = 0; i < done_alias; i++) {
>> + if (!strcmp(cmd_list[i], *argv[0])) {
>> + die("loop alias: %s is called twice",
>> + cmd_list[done_alias]);
>> + }
>> + }
>> +
>
> Wouldn't all of the above become three or four lines that is so
> clear that there is no need for any comment if you used string-list,
> perhaps?Whoops, I didn't know that string-list existed. I'll try reworking the code to use that. Concerning the comments: I planned to remove them anyways since the code should be simple enough to be understood without them already.
Show 10 quoted lines
> >> /* It could be an alias -- this works around the insanity >> * of overriding "git log" with "git show" by having >> * alias.log = show >> */ > > /* > * Style: our multi-line comment begins with and ends with > * slash-asterisk and asterisk-slash on their own lines. > */
I wasn't sure if I should have changed that (because I didn't introduce that comment), but I can fix it in v3.
Show 14 quoted lines
> >> - if (done_alias) >> - break; >> if (!handle_alias(argcp, argv)) >> break; >> - done_alias = 1; >> + done_alias++; >> } >> >> + free(cmd_list); >> + >> return done_alias; >> } >