"Falling back to scanning...\n";
}
-# Convert unix style paths to escaped Windows style paths when running
-# in Windows command prompt
-
-my $system = `uname -s`;
-$system =~ s/[\r\n]+//g;
my $git_work_tree;
-
-if ($system =~ m/^MSYS_NT/) {
- $git_work_tree = `cygpath -aw "\$PWD"`;
- $git_work_tree =~ s/[\r\n]+//g;
- $git_work_tree =~ s,\\,/,g;
+if ($^O =~ 'msys' || $^O =~ 'cygwin') {
+ $git_work_tree = Win32::GetCwd();
+ $git_work_tree =~ tr/\\/\//;
} else {
- $git_work_tree = $ENV{'PWD'};
+ require Cwd;
+ $git_work_tree = Cwd::cwd();
}
my $retry = 1;
sub launch_watchman {
- # Set input record separator
- local $/ = 0666;
-
my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j')
or die "open2() failed: $!\n" .
"Falling back to scanning...\n";
close $fh;
print CHLD_IN $query;
- my $response = <CHLD_OUT>;
+ close CHLD_IN;
+ my $response = do {local $/; <CHLD_OUT>};
open ($fh, ">", ".git/watchman-response.json");
print $fh $response;
"Falling back to scanning...\n" if $o->{error};
open ($fh, ">", ".git/watchman-output.out");
+ binmode $fh, ":utf8";
print $fh @{$o->{files}};
close $fh;