]> git.vpit.fr Git - perl/modules/CPANPLUS-Dist-Gentoo.git/commitdiff
Prevent infinite loop when forcing a distribution with recursive dependencies
authorVincent Pit <vince@profvince.com>
Sun, 25 Jan 2009 11:37:39 +0000 (12:37 +0100)
committerVincent Pit <vince@profvince.com>
Sun, 25 Jan 2009 11:37:39 +0000 (12:37 +0100)
lib/CPANPLUS/Dist/Gentoo.pm

index d40bf881a8f6969adad3e31fe5c49e5aa98fd293..3813281622e8996152ff02716ff825abab186a77 100644 (file)
@@ -61,6 +61,8 @@ my $default_keywords;
 my $default_distdir;
 my $main_portdir;
 
+my %forced;
+
 sub _unquote {
  my $s = shift;
  $s =~ s/^["']*//;
@@ -294,9 +296,10 @@ sub prepare {
 
  if (-e $file) {
   my $skip = 1;
-  if ($stat->force) {
+  if ($stat->force and not $forced{$file}) {
    if (-w $file) {
     1 while unlink $file;
+    $forced{$file} = 1;
     $skip = 0;
    } else {
     error "Can't force rewriting of $file -- skipping";