[perl #37223] [PATCH] File::Find::find fails on Win32 with follow => 1
Steve Peters [Sun, 25 Sep 2005 14:41:03 +0000 (07:41 -0700)]
From: "Steve Peters via RT" <perlbug-followup@perl.org>
Message-ID: <rt-3.0.11-37223-121392.15.8703994486314@perl.org>

and update docs

p4raw-id: //depot/perl@25597

lib/File/Find.pm

index 5578751..e3e6563 100644 (file)
@@ -131,6 +131,8 @@ a dangling symbolic link, then fullname will be set to C<undef>.
 
 =back
 
+This is a no-op on Win32.
+
 =item C<follow_fast>
 
 This is similar to I<follow> except that it may report some files more
@@ -139,6 +141,8 @@ have to be hashed, this is much cheaper both in space and time.  If
 processing a file more than once (by the user's C<wanted()> function)
 is worse than just taking time, the option I<follow> should be used.
 
+This is also a no-op on Win32.
+
 =item C<follow_skip>
 
 C<follow_skip==1>, which is the default, causes all files which are
@@ -603,8 +607,9 @@ sub _find_opt {
     $pre_process       = $wanted->{preprocess};
     $post_process      = $wanted->{postprocess};
     $no_chdir          = $wanted->{no_chdir};
-    $full_check        = $wanted->{follow};
-    $follow            = $full_check || $wanted->{follow_fast};
+    $full_check        = $^O eq 'MSWin32' ? 0 : $wanted->{follow};
+    $follow            = $full_check || $^O eq 'MSWin32' ? 0 : 
+                             $wanted->{follow_fast};
     $follow_skip       = $wanted->{follow_skip};
     $untaint           = $wanted->{untaint};
     $untaint_pat       = $wanted->{untaint_pattern};