Merge branch 'js/perl-path-workaround-in-tests'
authorJunio C Hamano <gitster@pobox.com>
Wed, 10 Jan 2018 22:01:31 +0000 (14:01 -0800)
committerJunio C Hamano <gitster@pobox.com>
Wed, 10 Jan 2018 22:01:31 +0000 (14:01 -0800)
* js/perl-path-workaround-in-tests:
mingw: handle GITPERLLIB in t0021 in a Windows-compatible way

t/t0021/rot13-filter.pl
index f1678851de954dd93ab0e2fc7912813ad5f09960..470107248eb161b9314ceb0ab93f21f072cf86cd 100644 (file)
 #
 
 use 5.008;
-use lib (split(/:/, $ENV{GITPERLLIB}));
+sub gitperllib {
+       # Git assumes that all path lists are Unix-y colon-separated ones. But
+       # when the Git for Windows executes the test suite, its MSYS2 Bash
+       # calls git.exe, and colon-separated path lists are converted into
+       # Windows-y semicolon-separated lists of *Windows* paths (which
+       # naturally contain a colon after the drive letter, so splitting by
+       # colons simply does not cut it).
+       #
+       # Detect semicolon-separated path list and handle them appropriately.
+
+       if ($ENV{GITPERLLIB} =~ /;/) {
+               return split(/;/, $ENV{GITPERLLIB});
+       }
+       return split(/:/, $ENV{GITPERLLIB});
+}
+use lib (gitperllib());
 use strict;
 use warnings;
 use IO::File;