@@ -504,6 +504,9 @@ sub _include_mskip_file {
push @lines, "\n#!start included $mskip\n";
push @lines, $_ while <M>;
close M;
+ # Ensure the last line that came from an included skip file has a trailing \n
+ # or the one after it gets join()'d onto the end of it!
+ $lines[-1] =~ s/\n?$/\n/;
push @lines, "#!end included $mskip\n\n";
return @lines;
}
The internal function
_include_mskip
assumes the included file is \n terminated, and parses it as an array of "\n" terminated values.It then appends a "#end " line to the array, and then later returns it to be joined with
join q[], @list
.However, this means if a file lacking a terminating
\n
will deliver:Which when joined with q[] gives:
Which subsequently parses as
Which of course fails to skip the file called "last-line"
Proposed solution exists in https://github.com/kentfredric/ExtUtils-Manifest/commits/fixes