The new smart match dispatch table for 5.10.1 onwards
[p5sagit/p5-mst-13.2.git] / embed.pl
index 1da5f44..f85c5a3 100755 (executable)
--- a/embed.pl
+++ b/embed.pl
@@ -23,7 +23,7 @@ sub do_not_edit ($)
 {
     my $file = shift;
 
-    my $years = '1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007';
+    my $years = '1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009';
 
     $years =~ s/1999,/1999,\n  / if length $years > 40;
 
@@ -50,7 +50,9 @@ EOW
 
 Up to the threshold of the door there mounted a flight of twenty-seven
 broad stairs, hewn by some unknown art of the same black stone.  This
-was the only entrance to the tower.
+was the only entrance to the tower; ...
+
+    [p.577 of _The Lord of the Rings_, III/x: "The Voice of Saruman"]
 
 
 EOW
@@ -108,7 +110,7 @@ sub walk_table (&@) {
     }
     print $F $trailer if $trailer;
     unless (ref $filename) {
-       close $F or die "Error closing $filename: $!";
+       safer_close($F);
        rename_if_different("$filename-new", $filename);
     }
 }
@@ -159,6 +161,7 @@ sub write_protos {
        my $has_context = ( $flags !~ /n/ );
        my $never_returns = ( $flags =~ /r/ );
        my $commented_out = ( $flags =~ /m/ );
+       my $binarycompat = ( $flags =~ /b/ );
        my $is_malloc = ( $flags =~ /a/ );
        my $can_ignore = ( $flags !~ /R/ ) && !$is_malloc;
        my @names_of_nn;
@@ -214,7 +217,7 @@ sub write_protos {
                if ( $SPLINT && $nullok && !$commented_out ) {
                    $arg = '/*@null@*/ ' . $arg;
                }
-               if (defined $1 && $nn) {
+               if (defined $1 && $nn && !($commented_out && !$binarycompat)) {
                    push @names_of_nn, $1;
                }
            }
@@ -637,7 +640,7 @@ print $em <<'END';
 /* ex: set ro: */
 END
 
-close($em) or die "Error closing EM: $!";
+safer_close($em);
 rename_if_different('embed.h-new', 'embed.h');
 
 $em = safer_open('embedvar.h-new');
@@ -732,7 +735,7 @@ print $em <<'END';
 /* ex: set ro: */
 END
 
-close($em) or die "Error closing EM: $!";
+safer_close($em);
 rename_if_different('embedvar.h-new', 'embedvar.h');
 
 my $capi = safer_open('perlapi.c-new');
@@ -859,7 +862,7 @@ print $capih <<'EOT';
 
 /* ex: set ro: */
 EOT
-close $capih or die "Error closing CAPIH: $!";
+safer_close($capih);
 rename_if_different('perlapi.h-new', 'perlapi.h');
 
 print $capi do_not_edit ("perlapi.c"), <<'EOT';
@@ -941,7 +944,7 @@ END_EXTERN_C
 /* ex: set ro: */
 EOT
 
-close($capi) or die "Error closing CAPI: $!";
+safer_close($capi);
 rename_if_different('perlapi.c-new', 'perlapi.c');
 
 # functions that take va_list* for implementing vararg functions