alias: add support for aliases of an alias
authorTim Schumacher <timschumi@gmx.de>
Sun, 16 Sep 2018 07:50:00 +0000 (09:50 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 17 Sep 2018 15:27:52 +0000 (08:27 -0700)
commitc6d75bc17a045af8cadd2dce982f5737a5ca38bb
treec69bc879eb5a8f627804a3962b16eb2b734855c1
parent1d4361b0f344188ab5eec6dcea01f61a3a3a1670
alias: add support for aliases of an alias

Aliases can only contain non-alias git commands and their arguments,
not other user-defined aliases.  Resolving further (nested) aliases
is prevented by breaking the loop after the first alias was
processed.  Git then fails with a command-not-found error.

Allow resolving nested aliases by not breaking the loop in
run_argv() after the first alias was processed.  Instead, continue
the loop until `handle_alias()` fails, which means that there are no
further aliases that can be processed.  Prevent looping aliases by
storing substituted commands in `cmd_list` and checking if a command
has been substituted previously.

While we're at it, fix a styling issue just below the added code.

Signed-off-by: Tim Schumacher <timschumi@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git.c