Re: find2perl . -xdev BROKEN still
Roderick Schertler [Thu, 19 Dec 1996 17:44:34 +0000 (12:44 -0500)]
On Thu, 19 Dec 1996 08:06:04 -0800, David Dyck <dcd@TC.FLUKE.COM> 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: <pzvi9yig3h.fsf@eeyore.ibcinc.com>

lib/File/Find.pm
lib/find.pl
lib/finddepth.pl

index c5ce68c..1faea50 100644 (file)
@@ -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);
index 29b83b0..ee5dc5d 100644 (file)
 
 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, @_);
index 5814a44..bfa44bb 100644 (file)
 
 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, @_);