yet more fixing escaping of backslashes in win32 paths in test
Karen Etheridge [Fri, 4 Oct 2013 21:06:45 +0000 (14:06 -0700)]
Changes
t/taint-mode.t

diff --git a/Changes b/Changes
index fd5e870..4c2c878 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,8 @@
 Revision history for local::lib
 
+        - yet another attempt to overcome win32 testing issues (paths with
+          spaces, backslashes)
+
 1.008020   2013-10-03 (development release, unindexed)
         - yet another attempt to overcome win32 testing issues (paths with
           spaces, backslashes)
index 6efe05e..ae73f7f 100644 (file)
@@ -22,12 +22,17 @@ local::lib->import($dir1);
 # local lib to the same temp dir.
 my ($fh, $filename) = tempfile('test_local_lib-XXXXX', DIR => Cwd::abs_path('t'), UNLINK => 1);
 
+# escape backlslashes for embedding into generated script
+$dir1 =~ s/\\/\\\\/g;
+
 print $fh <<EOM;
 #!/usr/bin/perl -T
 use strict; use warnings;
 use local::lib '$dir1';
-warn 'using lib dir $dir1', "\\n";
-if (grep { m{^\\Q$dir1\\E/} } \@INC) {
+warn "using lib dir $dir1\\n";
+my \$quoted_dir = quotemeta('$dir1');
+warn "dir is $dir1, quoted is \$quoted_dir\\n";
+if (grep { m{^\$quoted_dir/} } \@INC) {
   exit 0;
 }
 warn '\@INC is: ', join("\\n", \@INC), "\\n";