#!/usr/bin/perl -w
+#
+# Regenerate (overwriting only if changed):
+#
+# embed.h
+# embedvar.h
+# global.sym
+# perlapi.c
+# perlapi.h
+# proto.h
+#
+# from information stored in
+#
+# embed.fnc
+# intrpvar.h
+# perlvars.h
+# pp.sym (which has been generated by opcode.pl)
+#
+# plus from the values hardcoded into this script in @extvars.
+#
+# Accepts the standard regen_lib -q and -v args.
+#
+# This script is normally invoked from regen.pl.
require 5.003; # keep this compatible, an old perl is all we may have before
# we build the new one
{
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;
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
}
print $F $trailer if $trailer;
unless (ref $filename) {
- close $F or die "Error closing $filename: $!";
+ safer_close($F);
rename_if_different("$filename-new", $filename);
}
}
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;
if ( $SPLINT && $nullok && !$commented_out ) {
$arg = '/*@null@*/ ' . $arg;
}
- if (defined $1 && $nn) {
+ if (defined $1 && $nn && !($commented_out && !$binarycompat)) {
push @names_of_nn, $1;
}
}
if ( $flags =~ /r/ ) {
push @attrs, "__attribute__noreturn__";
}
+ if ( $flags =~ /D/ ) {
+ push @attrs, "__attribute__deprecated__";
+ }
if ( $is_malloc ) {
push @attrs, "__attribute__malloc__";
}
/* 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');
/* 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');
/* 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';
/* 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