X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FLaTeX%2FTikZ%2FFunctor%2FRule.pm;h=df5b553eb5a7256dd7e253f029c75f16d42a230f;hb=bc1f84f569da48d9d070384eb1bcccac289931e5;hp=666fd34b9656c1bfbb5f85ddec06b9ca2850cfc6;hpb=f54cadb836315572aa2c4bcb16f221da1687df7a;p=perl%2Fmodules%2FLaTeX-TikZ.git diff --git a/lib/LaTeX/TikZ/Functor/Rule.pm b/lib/LaTeX/TikZ/Functor/Rule.pm index 666fd34..df5b553 100644 --- a/lib/LaTeX/TikZ/Functor/Rule.pm +++ b/lib/LaTeX/TikZ/Functor/Rule.pm @@ -144,26 +144,26 @@ sub insert { my $is_role = $rule->is_role; if ($replace) { - my @remove; + my (@remove, $replaced); for my $i (0 .. $#$list) { my $old_target = $list->[$i]->target; if ($rule->handles($old_target)) { - if (defined $rule) { - splice @$list, $i, 1, $rule; - $rule = undef; - } else { + if ($replaced) { push @remove, $i; + } else { + splice @$list, $i, 1, $rule; + $replaced = 1; } } } - my $shift; + my $shift = 0; for (@remove) { splice @$list, $_ - $shift, 1; ++$shift; } - return 1 unless defined $rule; + return 1 if $replaced; } else { # Replace only an existent rule