Don't create an empty Errno.pm if there is an error whilst running Errno_pm.PL
Nicholas Clark [Tue, 31 Mar 2009 13:23:58 +0000 (14:23 +0100)]
Implemented by initially writing to an temporary file name, and renaming as the
last act.

ext/Errno/Errno_pm.PL

index 49e6a66..424f0f3 100644 (file)
@@ -13,7 +13,8 @@ my $IsSymbian = exists $ENV{SDK} && -d "$ENV{SDK}\\epoc32";
 my $IsMSWin32 = $^O eq 'MSWin32' && !$IsSymbian;
 
 unlink "Errno.pm" if -f "Errno.pm";
-open OUT, ">Errno.pm" or die "Cannot open Errno.pm: $!";
+unlink "Errno.tmp" if -f "Errno.tmp";
+open OUT, ">Errno.tmp" or die "Cannot open Errno.tmp: $!";
 select OUT;
 my $file;
 my @files = get_files();
@@ -39,6 +40,7 @@ else {
 }
 write_errno_pm();
 unlink "errno.c" if -f "errno.c";
+rename "Errno.tmp", "Errno.pm" or die "Cannot rename Errno.tmp to Errno.pm: $!";
 
 sub process_file {
     my($file) = @_;