This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Minor updates to our corelist update tool
[perl5.git] / reentr.pl
index be15c40..b90c61d 100644 (file)
--- a/reentr.pl
+++ b/reentr.pl
@@ -1,9 +1,20 @@
 #!/usr/bin/perl -w
-
-#
-# Generate the reentr.c and reentr.h,
-# and optionally also the relevant metaconfig units (-U option).
 # 
+# Regenerate (overwriting only if changed):
+#
+#    reentr.h
+#    reentr.c
+#
+# from information stored in the DATA section of this file.
+#
+# With the -U option, it also unconditionally regenerates the relevant
+# metaconfig units:
+#
+#    d_${func}_r.U
+#
+# Also accepts the standard regen_lib -q and -v args.
+#
+# This script is normally invoked from regen.pl.
 
 BEGIN {
     # Get function prototypes
@@ -504,7 +515,7 @@ EOF
 EOF
            pushssif $endif;
        }
-        elsif ($func =~ /^(drand48|gmtime|localtime|random|srandom)$/) {
+        elsif ($func =~ /^(drand48|random|srandom)$/) {
            pushssif $ifdef;
            push @struct, <<EOF;
        $seent{$func} _${func}_struct;
@@ -716,9 +727,6 @@ EOF
            }
 
            my $call = "${func}_r($v$w)";
-           if ($func eq 'localtime') {
-               $call = "L_R_TZSET $call";
-           }
 
             # Must make OpenBSD happy
             my $memzero = '';
@@ -751,13 +759,13 @@ EOF
 EOF
                }
            }
-           push @wrap, <<EOF;
-#  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
+           push @wrap, <<EOF;  # !defined(xxx) && XXX_R_PROTO == REENTRANT_PROTO_Y_TS
+#   endif
 EOF
        }
 
-           push @wrap, <<EOF;
-#   endif /* HAS_\U$func */
+           push @wrap, <<EOF;  # defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
+#  endif
 EOF
 
        push @wrap, $endif, "\n";
@@ -787,7 +795,7 @@ typedef struct {
 /* ex: set ro: */
 EOF
 
-close($h);
+safer_close($h);
 rename_if_different('reentr.h-new', 'reentr.h');
 
 # Prepare to write the reentr.c.
@@ -1089,7 +1097,7 @@ Perl_reentrant_retry(const char *f, ...)
 /* ex: set ro: */
 EOF
 
-close($c);
+safer_close($c);
 rename_if_different('reentr.c-new', 'reentr.c');
 
 __DATA__
@@ -1124,8 +1132,6 @@ getservbyname CC|netdb    |struct servent |I_CCSBWR|S_CCSBI|I_CCSD|D=struct servent
 getservbyport IC|netdb |struct servent |I_ICSBWR|S_ICSBI|I_ICSD|D=struct servent_data*
 getservent     |netdb  |struct servent |I_SBWR|I_SBI|S_SBI|I_SD|D=struct servent_data*
 getspnam C     |shadow |struct spwd    |I_CSBWR|S_CSBI
-gmtime T       |time   |struct tm      |S_TS|I_TS|T=const time_t*
-localtime T    |time   |struct tm      |S_TS|I_TS|T=const time_t*
 random         |stdlib |struct random_data|I_iS|I_lS|I_St|i=int*|l=long*|t=int32_t*
 readdir T      |dirent |struct dirent  |I_TSR|I_TS|T=DIR*
 readdir64 T    |dirent |struct dirent64|I_TSR|I_TS|T=DIR*