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 77
77
78
78
# Must be set early
79
79
$windows_os = $Config {osname } eq ' MSWin32' || $Config {osname } eq ' msys' ;
80
+ if ($windows_os )
81
+ {
82
+ require Win32API::File;
83
+ Win32API::File-> import (qw( createFile OsFHandleOpen CloseHandle) );
84
+ }
80
85
}
81
86
82
87
INIT
@@ -250,10 +255,24 @@ sub slurp_file
250
255
{
251
256
my ($filename ) = @_ ;
252
257
local $/ ;
253
- open (my $in , ' <' , $filename )
254
- or die " could not read \" $filename \" : $! " ;
255
- my $contents = <$in >;
256
- close $in ;
258
+ my $contents ;
259
+ if ($Config {osname } ne ' MSWin32' )
260
+ {
261
+ open (my $in , ' <' , $filename )
262
+ or die " could not read \" $filename \" : $! " ;
263
+ $contents = <$in >;
264
+ close $in ;
265
+ }
266
+ else
267
+ {
268
+ my $fHandle = createFile($filename , " r" , " rwd" )
269
+ or die " could not open \" $filename \" : $^E" ;
270
+ OsFHandleOpen(my $fh = IO::Handle-> new(), $fHandle , ' r' )
271
+ or die " could not read \" $filename \" : $^E\n " ;
272
+ $contents = <$fh >;
273
+ CloseHandle($fHandle )
274
+ or die " could not close \" $filename \" : $^E\n " ;
275
+ }
257
276
$contents =~ s /\r\n / \n / g if $Config {osname } eq ' msys' ;
258
277
return $contents ;
259
278
}
You can’t perform that action at this time.
0 commit comments