From: Roderick Schertler Date: Thu, 19 Dec 1996 17:44:34 +0000 (-0500) Subject: Re: find2perl . -xdev BROKEN still X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=28312d68c47acb9f56de892774db5561fea4db01;p=p5sagit%2Fp5-mst-13.2.git Re: find2perl . -xdev BROKEN still On Thu, 19 Dec 1996 08:06:04 -0800, David Dyck said: > > It seems that the -xdev feature for find2perl has been broken for that > last few subversions. > > I think it is because $topdev is no longer exported from find. You are right. This has been broken since find.pl was replaced with a wrapper around File::Find. Here's a fix. PS: I know this has come up before, but why don't we offer $name, $dir and so on (or maybe $find_name, etc, aliases) in @EXPORT_OK? p5p-msgid: --- diff --git a/lib/File/Find.pm b/lib/File/Find.pm index c5ce68c..1faea50 100644 --- a/lib/File/Find.pm +++ b/lib/File/Find.pm @@ -74,7 +74,9 @@ that don't resolve: sub find { my $wanted = shift; my $cwd = Cwd::cwd(); - my ($topdir,$topdev,$topino,$topmode,$topnlink); + # Localize these rather than lexicalizing them for backwards + # compatibility. + local($topdir,$topdev,$topino,$topmode,$topnlink); foreach $topdir (@_) { (($topdev,$topino,$topmode,$topnlink) = stat($topdir)) || (warn("Can't stat $topdir: $!\n"), next); @@ -163,7 +165,9 @@ sub finddepth { $cwd = Cwd::fastcwd();; - my($topdir, $topdev, $topino, $topmode, $topnlink); + # Localize these rather than lexicalizing them for backwards + # compatibility. + local($topdir, $topdev, $topino, $topmode, $topnlink); foreach $topdir (@_) { (($topdev,$topino,$topmode,$topnlink) = stat($topdir)) || (warn("Can't stat $topdir: $!\n"), next); diff --git a/lib/find.pl b/lib/find.pl index 29b83b0..ee5dc5d 100644 --- a/lib/find.pl +++ b/lib/find.pl @@ -31,9 +31,14 @@ use File::Find (); -*name = *File::Find::name; -*prune = *File::Find::prune; -*dir = *File::Find::dir; +*name = *File::Find::name; +*prune = *File::Find::prune; +*dir = *File::Find::dir; +*topdir = *File::Find::topdir; +*topdev = *File::Find::topdev; +*topino = *File::Find::topino; +*topmode = *File::Find::topmode; +*topnlink = *File::Find::topnlink; sub find { &File::Find::find(\&wanted, @_); diff --git a/lib/finddepth.pl b/lib/finddepth.pl index 5814a44..bfa44bb 100644 --- a/lib/finddepth.pl +++ b/lib/finddepth.pl @@ -30,9 +30,14 @@ use File::Find (); -*name = *File::Find::name; -*prune = *File::Find::prune; -*dir = *File::Find::dir; +*name = *File::Find::name; +*prune = *File::Find::prune; +*dir = *File::Find::dir; +*topdir = *File::Find::topdir; +*topdev = *File::Find::topdev; +*topino = *File::Find::topino; +*topmode = *File::Find::topmode; +*topnlink = *File::Find::topnlink; sub finddepth { &File::Find::finddepth(\&wanted, @_);