]> rtime.felk.cvut.cz Git - git.git/blobdiff - git-send-email.perl
Merge branch 'jk/maint-send-email-alias-loop'
[git.git] / git-send-email.perl
index 8ce6f1fe57579201c09cf960caed98d330ab2bbb..d508f83349b57ac2e7148f090e2abbf0a398fce4 100755 (executable)
@@ -654,13 +654,17 @@ if (!@to) {
 }
 
 sub expand_aliases {
-       my @cur = @_;
-       my @last;
-       do {
-               @last = @cur;
-               @cur = map { $aliases{$_} ? @{$aliases{$_}} : $_ } @last;
-       } while (join(',',@cur) ne join(',',@last));
-       return @cur;
+       return map { expand_one_alias($_) } @_;
+}
+
+my %EXPANDED_ALIASES;
+sub expand_one_alias {
+       my $alias = shift;
+       if ($EXPANDED_ALIASES{$alias}) {
+               die "fatal: alias '$alias' expands to itself\n";
+       }
+       local $EXPANDED_ALIASES{$alias} = 1;
+       return $aliases{$alias} ? expand_aliases(@{$aliases{$alias}}) : $alias;
 }
 
 @to = expand_aliases(@to);