File tree Expand file tree Collapse file tree 1 file changed +23
-4
lines changed
Filter options
Expand file tree Collapse file tree 1 file changed +23
-4
lines changed
Original file line number Diff line number Diff line change 63
63
64
64
# Must be set early
65
65
$windows_os = $Config {osname } eq ' MSWin32' || $Config {osname } eq ' msys' ;
66
+ if ($windows_os )
67
+ {
68
+ require Win32API::File;
69
+ Win32API::File-> import (qw( createFile OsFHandleOpen CloseHandle) );
70
+ }
66
71
}
67
72
68
73
INIT
@@ -212,10 +217,24 @@ sub slurp_file
212
217
{
213
218
my ($filename ) = @_ ;
214
219
local $/ ;
215
- open (my $in , ' <' , $filename )
216
- or die " could not read \" $filename \" : $! " ;
217
- my $contents = <$in >;
218
- close $in ;
220
+ my $contents ;
221
+ if ($Config {osname } ne ' MSWin32' )
222
+ {
223
+ open (my $in , ' <' , $filename )
224
+ or die " could not read \" $filename \" : $! " ;
225
+ $contents = <$in >;
226
+ close $in ;
227
+ }
228
+ else
229
+ {
230
+ my $fHandle = createFile($filename , " r" , " rwd" )
231
+ or die " could not open \" $filename \" : $^E" ;
232
+ OsFHandleOpen(my $fh = IO::Handle-> new(), $fHandle , ' r' )
233
+ or die " could not read \" $filename \" : $^E\n " ;
234
+ $contents = <$fh >;
235
+ CloseHandle($fHandle )
236
+ or die " could not close \" $filename \" : $^E\n " ;
237
+ }
219
238
$contents =~ s /\r\n / \n / g if $Config {osname } eq ' msys' ;
220
239
return $contents ;
221
240
}
You can’t perform that action at this time.
0 commit comments