summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorswhite <swhite@17b73243-c579-4c4c-a9d2-2d5706c11dac>2005-08-04 15:05:45 +0000
committerswhite <swhite@17b73243-c579-4c4c-a9d2-2d5706c11dac>2005-08-04 15:05:45 +0000
commita78307bc05b653f6b70bcc8dc1588106a54dda28 (patch)
tree882593090693673e404e7221bd15e6b9cd28515d
parent3043edc98ab30864a1b8cee3d69009d8ef8764da (diff)
Discussed on Patches mailing list 15.7.05:
PATCH: PR 1916--ThornGuide generation fails if arrangements are links git-svn-id: http://svn.cactuscode.org/flesh/trunk@4106 17b73243-c579-4c4c-a9d2-2d5706c11dac
-rw-r--r--lib/sbin/ThornList.pl27
-rw-r--r--lib/sbin/ThornUtils.pm31
2 files changed, 26 insertions, 32 deletions
diff --git a/lib/sbin/ThornList.pl b/lib/sbin/ThornList.pl
index e53ba8e6..e9a0221f 100644
--- a/lib/sbin/ThornList.pl
+++ b/lib/sbin/ThornList.pl
@@ -121,27 +121,24 @@ else
sub FindDirectories
{
- my (@good_directories);
- my $name;
+ my $search_dir = shift;
+ my @good_directories;
+ my $dirhdl;
- chdir ("$start_directory") || die "\nCannot chdir to $start_directory: $!";
+ opendir ($dirhdl, $search_dir)
+ or die "\nCannot open directory $search_dir\n";
- chdir("$_[0]") || die "\nCannot change directory to $_[0] : $!";
-
- open(LS, "ls -F|");
-
- while(chomp($name = <LS>))
+ while (defined (my $name = readdir($dirhdl)))
{
- next if (! -d $name);
- if (($name ne "History/") && ($name ne "CVS/"))
+ next if (! -d "$search_dir/$name");
+
+ if (($name ne 'History') && ($name ne 'CVS')
+ && !($name =~ /^\./ ) ) # i.e. current, parent & hidden dirs
{
- $name =~ s#/##;
push(@good_directories, $name);
}
}
+ closedir $dirhdl;
- close(LS);
-
- chdir ($start_directory);
- return (@good_directories);
+ return @good_directories;
} ## END :Find_Directories:
diff --git a/lib/sbin/ThornUtils.pm b/lib/sbin/ThornUtils.pm
index 845010dd..acbdca0b 100644
--- a/lib/sbin/ThornUtils.pm
+++ b/lib/sbin/ThornUtils.pm
@@ -1,6 +1,5 @@
package ThornUtils;
-
my $parskip_set = "0pt";
my $parskip_restore = "10pt";
@@ -73,29 +72,27 @@ sub CreateThornlist
#@@*/
sub FindDirectories
{
- my ($directory) = shift;
-
- my (@directories);
-
- chdir ($start_directory) || die "\nCannot change directory to $start_directory: $!";
+ my $directory = shift;
- chdir($directory) || die "\nCannot change directory to $directory: $!";
+ my @directories;
+ my $dirhdl;
- open(LS, "ls -F|");
+ opendir ($dirhdl, $directory)
+ or die "\nCannot open directory $directory\n";
- while( chomp($name = <LS>))
+ while (defined (my $name = readdir($dirhdl)))
{
- next if ((! -d $name) || ($name eq "History/") || ($name eq "CVS/"));
-
- $name =~ s/\/$//;
- push(@directories, $name);
+ if ((-d "$directory/$name")
+ && ($name ne 'History') && ($name ne 'CVS')
+ && !($name =~ /^\./) ) # i.e. current, parent & hidden dirs
+ {
+ push(@directories, $name);
+ }
}
- close(LS);
-
- chdir ($start_directory) || die "\nCannot change directory to $start_directory: $!";
+ closedir $dirhdl;
- return (@directories);
+ return @directories;
}
#/*@@