winemaker: Fix invalid usage of {open,close}dir() in fix_file_and_directory_names(). .
Reuse our caching mechanism (get_directory_contents()), but clear the cache if we have modified a directory's content.
This commit is contained in:
parent
33d4c7c514
commit
d4fddfb4bc
|
@ -447,6 +447,14 @@ sub get_directory_contents($)
|
||||||
return $directory;
|
return $directory;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
##
|
||||||
|
# Removes a directory from the cache.
|
||||||
|
# This is needed if one of its files or subdirectory has been renamed.
|
||||||
|
sub clear_directory_cache($)
|
||||||
|
{
|
||||||
|
my ($dirname)=@_;
|
||||||
|
delete $directories{$dirname};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#####
|
#####
|
||||||
|
@ -604,7 +612,6 @@ sub source_scan_directory($$$$)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
closedir(DIRECTORY);
|
|
||||||
|
|
||||||
if ($has_headers) {
|
if ($has_headers) {
|
||||||
push @{@$project_settings[$T_INCLUDE_PATH]},"-I.";
|
push @{@$project_settings[$T_INCLUDE_PATH]},"-I.";
|
||||||
|
@ -997,8 +1004,9 @@ sub fix_file_and_directory_names($)
|
||||||
{
|
{
|
||||||
my $dirname=$_[0];
|
my $dirname=$_[0];
|
||||||
|
|
||||||
if (opendir(DIRECTORY, "$dirname")) {
|
my $directory=get_directory_contents($dirname);
|
||||||
foreach my $dentry (readdir DIRECTORY) {
|
foreach my $dentry (@$directory)
|
||||||
|
{
|
||||||
if ($dentry =~ /^\./ or $dentry eq "CVS") {
|
if ($dentry =~ /^\./ or $dentry eq "CVS") {
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
|
@ -1036,7 +1044,8 @@ sub fix_file_and_directory_names($)
|
||||||
$new_name =~ s/[ \$]/_/g;
|
$new_name =~ s/[ \$]/_/g;
|
||||||
|
|
||||||
# And finally, perform the renaming
|
# And finally, perform the renaming
|
||||||
if ($new_name ne $dentry) {
|
if ($new_name ne $dentry)
|
||||||
|
{
|
||||||
if ($warn) {
|
if ($warn) {
|
||||||
print STDERR "warning: in \"$dirname\", renaming \"$dentry\" to \"$new_name\"\n";
|
print STDERR "warning: in \"$dirname\", renaming \"$dentry\" to \"$new_name\"\n";
|
||||||
}
|
}
|
||||||
|
@ -1045,13 +1054,15 @@ sub fix_file_and_directory_names($)
|
||||||
print STDERR " $!\n";
|
print STDERR " $!\n";
|
||||||
$new_name=$dentry;
|
$new_name=$dentry;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
clear_directory_cache($dirname);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (-d "$dirname/$new_name") {
|
if (-d "$dirname/$new_name") {
|
||||||
fix_file_and_directory_names("$dirname/$new_name");
|
fix_file_and_directory_names("$dirname/$new_name");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
closedir(DIRECTORY);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue