From 5fe33744432f7509a07bccef51d07be64f3827f0 Mon Sep 17 00:00:00 2001
From: Andrew Dunstan <andrew@dunslane.net>
Date: Thu, 7 Apr 2011 22:16:43 -0400
Subject: [PATCH] Avoid use of mixed slash style paths in arguments to xcopy in
 MSVC builds.

Some versions of xcopy, notably on Windows 7 don't like it. Backpatch
to 8.3, where we first used xcopy.
---
 src/tools/msvc/Install.pm | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/tools/msvc/Install.pm b/src/tools/msvc/Install.pm
index bda08ac1ae..c9925bfac0 100644
--- a/src/tools/msvc/Install.pm
+++ b/src/tools/msvc/Install.pm
@@ -424,15 +424,16 @@ sub CopyIncludeFiles
     my $D;
     opendir($D, 'src/include') || croak "Could not opendir on src/include!\n";
 
-    while (my $d = readdir($D))
+	# some xcopy progs don't like mixed slash style paths
+	(my $ctarget = $target) =~ s!/!\\!g;
+	while (my $d = readdir($D))
     {
         next if ($d =~ /^\./);
         next if ($d eq 'CVS');
-        next unless (-d 'src/include/' . $d);
+        next unless (-d "src/include/$d");
 
-        EnsureDirectories($target . '/include/server', $d);
-        system(
-            "xcopy /s /i /q /r /y src\\include\\$d\\*.h \"$target\\include\\server\\$d\\\"")
+        EnsureDirectories("$target/include/server/$d");
+        system(qq{xcopy /s /i /q /r /y src\\include\\$d\\*.h "$ctarget\\include\\server\\$d\\"})
           && croak("Failed to copy include directory $d\n");
     }
     closedir($D);