File tree Expand file tree Collapse file tree 1 file changed +23
-4
lines changed Expand file tree Collapse file tree 1 file changed +23
-4
lines changed Original file line number Diff line number Diff line change 79
79
80
80
# Must be set early
81
81
$windows_os = $Config {osname } eq ' MSWin32' || $Config {osname } eq ' msys' ;
82
+ if ($windows_os )
83
+ {
84
+ require Win32API::File;
85
+ Win32API::File-> import (qw( createFile OsFHandleOpen CloseHandle) );
86
+ }
82
87
}
83
88
84
89
INIT
@@ -256,10 +261,24 @@ sub slurp_file
256
261
{
257
262
my ($filename ) = @_ ;
258
263
local $/ ;
259
- open (my $in , ' <' , $filename )
260
- or die " could not read \" $filename \" : $! " ;
261
- my $contents = <$in >;
262
- close $in ;
264
+ my $contents ;
265
+ if ($Config {osname } ne ' MSWin32' )
266
+ {
267
+ open (my $in , ' <' , $filename )
268
+ or die " could not read \" $filename \" : $! " ;
269
+ $contents = <$in >;
270
+ close $in ;
271
+ }
272
+ else
273
+ {
274
+ my $fHandle = createFile($filename , " r" , " rwd" )
275
+ or die " could not open \" $filename \" : $^E" ;
276
+ OsFHandleOpen(my $fh = IO::Handle-> new(), $fHandle , ' r' )
277
+ or die " could not read \" $filename \" : $^E\n " ;
278
+ $contents = <$fh >;
279
+ CloseHandle($fHandle )
280
+ or die " could not close \" $filename \" : $^E\n " ;
281
+ }
263
282
$contents =~ s /\r\n / \n / g if $Config {osname } eq ' msys' ;
264
283
return $contents ;
265
284
}
You can’t perform that action at this time.
0 commit comments