diff options
author | swhite <swhite@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2005-08-04 15:05:45 +0000 |
---|---|---|
committer | swhite <swhite@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2005-08-04 15:05:45 +0000 |
commit | a78307bc05b653f6b70bcc8dc1588106a54dda28 (patch) | |
tree | 882593090693673e404e7221bd15e6b9cd28515d | |
parent | 3043edc98ab30864a1b8cee3d69009d8ef8764da (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.pl | 27 | ||||
-rw-r--r-- | lib/sbin/ThornUtils.pm | 31 |
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; } #/*@@ |