|
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 | | -ordie"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 | +ordie"could not read\"$filename\":$!"; |
| 269 | +$contents = <$in>; |
| 270 | +close$in; |
| 271 | +} |
| 272 | +else |
| 273 | +{ |
| 274 | +my$fHandle = createFile($filename,"r","rwd") |
| 275 | +ordie"could not open\"$filename\": $^E"; |
| 276 | +OsFHandleOpen(my$fh = IO::Handle->new(),$fHandle,'r') |
| 277 | +ordie"could not read\"$filename\": $^E\n"; |
| 278 | +$contents = <$fh>; |
| 279 | +CloseHandle($fHandle) |
| 280 | +ordie"could not close\"$filename\": $^E\n"; |
| 281 | +} |
263 | 282 | $contents =~s/\r\n/\n/gif$Config{osname}eq'msys'; |
264 | 283 | return$contents; |
265 | 284 | } |
|