In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/48e9f29d31f13e3ebfb9f77ed4effa561966c7a9?hp=86f4502880c5cbc7a5ec1510ab05a413bfb40e03>

- Log -----------------------------------------------------------------
commit 48e9f29d31f13e3ebfb9f77ed4effa561966c7a9
Author: Jarkko Hietaniemi <[email protected]>
Date:   Mon Jul 20 11:53:09 2015 +0300

    Drop useful-looking but unused lookup table.

M       time64.c

commit 8a62d6b8193214bd476c275fc4b083b526108223
Author: Jarkko Hietaniemi <[email protected]>
Date:   Mon Jul 20 12:31:42 2015 +0300

    Declaring static in header is odd (and warnable offense).

M       time64.h

commit e27be216b1132c5c017dc516d806edf309c90386
Author: Jarkko Hietaniemi <[email protected]>
Date:   Mon Jul 20 12:31:05 2015 +0300

    Convert pp_sys to use the time64 public interface.

M       pp_sys.c

commit f832b29a2b3f71c66c6e6b76a02b5faefe0ebeb1
Author: Jarkko Hietaniemi <[email protected]>
Date:   Mon Jul 20 11:51:47 2015 +0300

    Add time64 as its own build target.

M       Cross/Makefile-cross-SH
M       Cross/cflags-cross-arm
M       Makefile.SH
M       Makefile.micro
M       NetWare/Makefile
M       plan9/mkfile
M       time64.c
M       time64.h
M       vms/descrip_mms.template
M       win32/GNUmakefile
M       win32/Makefile
M       win32/Makefile.ce
M       win32/makefile.mk

commit a55c5245146801ac2b2be2914342a6a829670513
Author: Jarkko Hietaniemi <[email protected]>
Date:   Sun Jul 19 16:54:22 2015 +0300

    dquote_static.c -> dquote.c
    
    Instead of #include-ing the C file, compile it normally.

M       Cross/Makefile-cross-SH
M       Cross/cflags-cross-arm
M       MANIFEST
M       Makefile.SH
M       Makefile.micro
M       NetWare/Makefile
A       dquote.c
D       dquote_static.c
M       embed.fnc
M       embed.h
M       ext/re/Makefile.PL
M       plan9/mkfile
M       proto.h
M       regcomp.c
M       toke.c
M       vms/descrip_mms.template
M       win32/GNUmakefile
M       win32/Makefile
M       win32/Makefile.ce
M       win32/makefile.mk

commit f7e03a1013a0b759f99885c500f0e89656a992ba
Author: Jarkko Hietaniemi <[email protected]>
Date:   Sun Jul 19 10:34:24 2015 +0300

    static inlines from dquote_static.c -> new dquote_inline.h

M       MANIFEST
A       dquote_inline.h
M       dquote_static.c
M       regcomp.c
M       toke.c

commit b992490dd5c64d667e649dd0ee35a658034d93c0
Author: Jarkko Hietaniemi <[email protected]>
Date:   Sat Jul 18 21:24:47 2015 +0300

    inline_invlist.c -> invlist_inline.h

M       MANIFEST
M       ext/re/Makefile.PL
D       inline_invlist.c
A       invlist_inline.h
M       regcomp.c
M       regexec.c
M       utf8.c

commit bbef9e8971749a5008bb4cd805eff6a7e0c584b4
Author: Jarkko Hietaniemi <[email protected]>
Date:   Tue Jul 21 09:49:05 2015 +0300

    Make *inline.h behave like *.c

M       t/porting/args_assert.t

commit 6ffcffbd7dc3d42844ba051086599e4f70bfdb1f
Author: Jarkko Hietaniemi <[email protected]>
Date:   Sat Jul 18 17:22:13 2015 +0300

    overload.c -> overload.inc

M       MANIFEST
M       gv.c
D       overload.c
A       overload.inc
M       regen/overload.pl

commit 5478a2b983aa7a04b93cfaf83bb9805713bf2d3f
Author: Jarkko Hietaniemi <[email protected]>
Date:   Sat Jul 18 16:53:00 2015 +0300

    overload.[hc] descriptions were swapped

M       MANIFEST

commit 4ad176efffec2453196c8a3f35f73c0eeed776a0
Author: Jarkko Hietaniemi <[email protected]>
Date:   Sat Jul 18 16:28:46 2015 +0300

    packsizetables.c -> packsizetables.inc

M       MANIFEST
D       packsizetables.c
A       packsizetables.inc
M       pp_pack.c
M       regen/genpacksizetables.pl

commit 16bc0f484029674886960a735bef3fa497aeb6de
Author: Jarkko Hietaniemi <[email protected]>
Date:   Fri Jul 17 11:46:14 2015 +0300

    mg_names.c -> mg_names.inc

M       MANIFEST
M       dump.c
D       mg_names.c
A       mg_names.inc
M       regen/mg_vtable.pl

commit 23fd77c01aafa1987698dc47bed34bd342178516
Author: Jarkko Hietaniemi <[email protected]>
Date:   Fri Jul 17 11:55:00 2015 +0300

    Make *.inc behave like *.[hc]

M       regen/regen_lib.pl
-----------------------------------------------------------------------

Summary of changes:
 Cross/Makefile-cross-SH                |   8 +-
 Cross/cflags-cross-arm                 |   2 +
 MANIFEST                               |  13 +--
 Makefile.SH                            |   4 +-
 Makefile.micro                         |  10 +-
 NetWare/Makefile                       |   2 +
 dquote_static.c => dquote.c            | 175 +++------------------------------
 dquote_inline.h                        | 160 ++++++++++++++++++++++++++++++
 dump.c                                 |   2 +-
 embed.fnc                              |  10 +-
 embed.h                                |   6 +-
 ext/re/Makefile.PL                     |  20 ++--
 gv.c                                   |   2 +-
 inline_invlist.c => invlist_inline.h   |   2 +-
 mg_names.c => mg_names.inc             |   2 +-
 overload.c => overload.inc             |   2 +-
 packsizetables.c => packsizetables.inc |   0
 plan9/mkfile                           |   2 +-
 pp_pack.c                              |   2 +-
 pp_sys.c                               |   5 +-
 proto.h                                |  36 +++----
 regcomp.c                              |   6 +-
 regen/genpacksizetables.pl             |   2 +-
 regen/mg_vtable.pl                     |   4 +-
 regen/overload.pl                      |   4 +-
 regen/regen_lib.pl                     |   2 +-
 regexec.c                              |   2 +-
 t/porting/args_assert.t                |   4 +-
 time64.c                               |  23 ++---
 time64.h                               |   5 +-
 toke.c                                 |   2 +-
 utf8.c                                 |   2 +-
 vms/descrip_mms.template               |  12 ++-
 win32/GNUmakefile                      |   2 +
 win32/Makefile                         |   2 +
 win32/Makefile.ce                      |   4 +
 win32/makefile.mk                      |   2 +
 37 files changed, 285 insertions(+), 258 deletions(-)
 rename dquote_static.c => dquote.c (53%)
 create mode 100644 dquote_inline.h
 rename inline_invlist.c => invlist_inline.h (99%)
 rename mg_names.c => mg_names.inc (99%)
 rename overload.c => overload.inc (99%)
 rename packsizetables.c => packsizetables.inc (100%)

diff --git a/Cross/Makefile-cross-SH b/Cross/Makefile-cross-SH
index 01cde92..4b6bf12 100644
--- a/Cross/Makefile-cross-SH
+++ b/Cross/Makefile-cross-SH
@@ -345,17 +345,17 @@ h4 = regexp.h scope.h sv.h unixish.h util.h iperlsys.h 
thread.h
 h5 = utf8.h warnings.h
 h = $(h1) $(h2) $(h3) $(h4) $(h5)
 
-c1 = av.c scope.c op.c doop.c doio.c dump.c gv.c hv.c mg.c reentr.c mro_core.c 
perl.c
+c1 = av.c scope.c op.c doop.c doio.c dquote.c dump.c gv.c hv.c mg.c reentr.c 
mro_core.c perl.c
 c2 = perly.c pp.c pp_hot.c pp_ctl.c pp_sys.c regcomp.c regexec.c utf8.c sv.c
-c3 = taint.c toke.c util.c deb.c run.c universal.c pad.c globals.c keywords.c
+c3 = taint.c time64.c toke.c util.c deb.c run.c universal.c pad.c globals.c 
keywords.c
 c4 = perlio.c perlapi.c numeric.c mathoms.c locale.c pp_pack.c pp_sort.c
 c5 = $(mallocsrc)
 
 c = $(c1) $(c2) $(c3) $(c4) $(c5) miniperlmain.c perlmain.c opmini.c
 
-obj1 = $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) op$(OBJ_EXT) 
pad$(OBJ_EXT) regcomp$(OBJ_EXT) dump$(OBJ_EXT) util$(OBJ_EXT) mg$(OBJ_EXT) 
reentr$(OBJ_EXT) mro_core$(OBJ_EXT)
+obj1 = $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) op$(OBJ_EXT) 
pad$(OBJ_EXT) regcomp$(OBJ_EXT) dquote$(OBJ_EXT) dump$(OBJ_EXT) util$(OBJ_EXT) 
mg$(OBJ_EXT) reentr$(OBJ_EXT) mro_core$(OBJ ... [5 chars truncated]
 obj2 = hv$(OBJ_EXT) av$(OBJ_EXT) perl$(OBJ_EXT) run$(OBJ_EXT) pp_hot$(OBJ_EXT) 
sv$(OBJ_EXT) pp$(OBJ_EXT) scope$(OBJ_EXT) pp_ctl$(OBJ_EXT) pp_sys$(OBJ_EXT)
-obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) utf8$(OBJ_EXT) 
taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) globals$(OBJ_EXT) 
perlio$(OBJ_EXT) perlapi$(OBJ_EXT) numeric$(OBJ_EXT) mathoms$ ... [62 chars 
truncated]
+obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) utf8$(OBJ_EXT) 
taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) globals$(OBJ_EXT) 
perlio$(OBJ_EXT) perlapi$(OBJ_EXT) numeric$(OBJ_EXT) mathoms$ ... [79 chars 
truncated]
 
 obj = $(obj1) $(obj2) $(obj3) $(ARCHOBJS)
 
diff --git a/Cross/cflags-cross-arm b/Cross/cflags-cross-arm
index 8ee55a5..3006394 100644
--- a/Cross/cflags-cross-arm
+++ b/Cross/cflags-cross-arm
@@ -73,6 +73,7 @@ for file do
     dl) ;;
     doio) ;;
     doop) ;;
+    dquote) ;;
     dump) ;;
     globals) ;;
     gv) ;;
@@ -102,6 +103,7 @@ for file do
     scope) ;;
     sv) ;;
     taint) ;;
+    time64) ;;
     toke) ;;
     universal) ;;
     usersub) ;;
diff --git a/MANIFEST b/MANIFEST
index 814074b..3c81860 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -3527,7 +3527,8 @@ djgpp/fixpmain            DOS/DJGPP port
 doio.c                 I/O operations
 doop.c                 Support code for various operations
 dosish.h               Some defines for MS/DOSish machines
-dquote_static.c                Static functions for double quotish contexts
+dquote.c               Functions for double quotish contexts
+dquote_inline.h                Inline functions for double quotish contexts
 dump.c                 Debugging output
 ebcdic_tables.h                Generated tables included in utfebcdic.h
 embed.fnc              Database used by embed.pl
@@ -4107,7 +4108,6 @@ hv.c                              Hash value code
 hv_func.h                      Hash value static inline function header
 hv.h                           Hash value header
 inline.h                       Static inline functions
-inline_invlist.c               Inline functions for handling inversion lists
 INSTALL                                Detailed installation instructions
 installhtml                    Perl script to install html files for pods
 install_lib.pl                 functions shared between install* scripts
@@ -4115,6 +4115,7 @@ installman                        Perl script to install 
man pages for pods
 installperl                    Perl script to do "make install" dirty work
 INTERN.h                       Included before domestic .h files
 intrpvar.h                     Variables held in each interpreter instance
+invlist_inline.h               Inline functions for handling inversion lists
 iperlsys.h                     Perl's interface to the system
 keywords.c                     Perl_keyword(), generated by regen/keywords.pl
 keywords.h                     The keyword numbers
@@ -4385,7 +4386,7 @@ META.json                 Distribution meta-data in JSON
 META.yml                       Distribution meta-data in YAML
 mg.c                           Magic code
 mg.h                           Magic header
-mg_names.c                     Generated magic names used by dump.c
+mg_names.inc                   Generated magic names used by dump.c
 mg_raw.h                       Generated magic data used by generate_uudmap.c
 mg_vtable.h                    Generated magic vtable data
 miniperlmain.c                 Basic perl w/o dynamic loading or extensions
@@ -4515,9 +4516,9 @@ os2/OS2/typemap                   Common typemap for OS/2 
types
 os2/perl2cmd.pl                        Corrects installed binaries under OS/2
 os2/perlrexx.c                 Support perl interpreter embedded in REXX
 os2/perlrexx.cmd               Test perl interpreter embedded in REXX
-overload.c                     generated overload enum (public)
-overload.h                     generated overload name table (implementation)
-packsizetables.c               The generated packprops array used in pp_pack.c
+overload.h                     generated overload enum (public)
+overload.inc                   generated overload name table (implementation)
+packsizetables.inc             The generated packprops array used in pp_pack.c
 pad.c                          Scratchpad functions
 pad.h                          Scratchpad headers
 parser.h                       parser object header
diff --git a/Makefile.SH b/Makefile.SH
index 0a4eb5e..bc5837e 100755
--- a/Makefile.SH
+++ b/Makefile.SH
@@ -476,7 +476,7 @@ h = $(h1) $(h2) $(h3) $(h4) $(h5) $(h6)
 c1 = av.c scope.c op.c doop.c doio.c dump.c gv.c hv.c mg.c reentr.c mro_core.c 
perl.c
 c2 = perly.c pp.c pp_hot.c pp_ctl.c pp_sys.c regcomp.c regexec.c utf8.c sv.c
 c3 = taint.c toke.c util.c deb.c run.c universal.c pad.c globals.c keywords.c
-c4 = perlio.c perlapi.c numeric.c mathoms.c locale.c pp_pack.c pp_sort.c 
caretx.c
+c4 = perlio.c perlapi.c numeric.c mathoms.c locale.c pp_pack.c pp_sort.c 
caretx.c dquote.c time64.c
 c5 = $(mallocsrc)
 
 c = $(c1) $(c2) $(c3) $(c4) $(c5) miniperlmain.c opmini.c perlmini.c
@@ -485,7 +485,7 @@ obj0 = op$(OBJ_EXT) perl$(OBJ_EXT)
 obj0mini = perlmini$(OBJ_EXT) opmini$(OBJ_EXT) miniperlmain$(OBJ_EXT)
 obj1 = $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) pad$(OBJ_EXT) 
regcomp$(OBJ_EXT) dump$(OBJ_EXT) util$(OBJ_EXT) mg$(OBJ_EXT) reentr$(OBJ_EXT) 
mro_core$(OBJ_EXT) keywords$(OBJ_EXT)
 obj2 = hv$(OBJ_EXT) av$(OBJ_EXT) run$(OBJ_EXT) pp_hot$(OBJ_EXT) sv$(OBJ_EXT) 
pp$(OBJ_EXT) scope$(OBJ_EXT) pp_ctl$(OBJ_EXT) pp_sys$(OBJ_EXT)
-obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) utf8$(OBJ_EXT) 
taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) globals$(OBJ_EXT) 
perlio$(OBJ_EXT) perlapi$(OBJ_EXT) numeric$(OBJ_EXT) mathoms$ ... [79 chars 
truncated]
+obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) utf8$(OBJ_EXT) 
taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) globals$(OBJ_EXT) 
perlio$(OBJ_EXT) perlapi$(OBJ_EXT) numeric$(OBJ_EXT) mathoms$ ... [113 chars 
truncated]
 
 minindt_obj = $(obj0mini) $(obj1) $(obj2) $(obj3) $(ARCHOBJS)
 mini_obj = $(minindt_obj) $(MINIDTRACE_O)
diff --git a/Makefile.micro b/Makefile.micro
index dedf183..a697e16 100644
--- a/Makefile.micro
+++ b/Makefile.micro
@@ -14,13 +14,13 @@ RUN =
 
 all:   microperl
 
-O = uav$(_O) udeb$(_O) udoio$(_O) udoop$(_O) udump$(_O) \
+O = uav$(_O) udeb$(_O) udoio$(_O) udoop$(_O) udquote$(_O) udump$(_O) \
        uglobals$(_O) ugv$(_O) uhv$(_O) umro$(_O)\
        umg$(_O) uperlmain$(_O) uop$(_O) ureentr$(_O) \
        upad$(_O) uperl$(_O) uperlio$(_O) uperly$(_O) upp$(_O) \
        upp_ctl$(_O) upp_hot$(_O) upp_sys$(_O) upp_pack$(_O) upp_sort$(_O) \
        uregcomp$(_O) uregexec$(_O) urun$(_O) \
-       uscope$(_O) usv$(_O) utaint$(_O) utoke$(_O) \
+       uscope$(_O) usv$(_O) utaint$(_O) utime64$(_O) utoke$(_O) \
        unumeric$(_O) ulocale$(_O) umathoms$(_O) \
        uuniversal$(_O) uutf8$(_O) uutil$(_O) uperlapi$(_O) ukeywords$(_O)
 
@@ -76,6 +76,9 @@ udoio$(_O):   $(HE) doio.c
 udoop$(_O):    $(HE) doop.c
        $(CC) $(CCFLAGS) -o $@ $(CFLAGS) doop.c
 
+udquote$(_O):  $(HE) dquote.c regcomp.h regnodes.h
+       $(CC) $(CCFLAGS) -o $@ $(CFLAGS) dquote.c
+
 udump$(_O):    $(HE) dump.c regcomp.h regnodes.h
        $(CC) $(CCFLAGS) -o $@ $(CFLAGS) dump.c
 
@@ -154,6 +157,9 @@ usv$(_O):   $(HE) sv.c
 utaint$(_O):   $(HE) taint.c
        $(CC) $(CCFLAGS) -o $@ $(CFLAGS) taint.c
 
+utime64$(_O):  $(HE) time64.c time64.h time64_config.h
+       $(CC) $(CCFLAGS) -o $@ $(CFLAGS) time64.c
+
 utoke$(_O):    $(HE) toke.c keywords.h
        $(CC) $(CCFLAGS) -o $@ $(CFLAGS) toke.c
 
diff --git a/NetWare/Makefile b/NetWare/Makefile
index 18558e0..dd4df14 100644
--- a/NetWare/Makefile
+++ b/NetWare/Makefile
@@ -689,6 +689,7 @@ MICROCORE_SRC       =               \
                ..\deb.c        \
                ..\doio.c       \
                ..\doop.c       \
+               ..\dquote.c     \
                ..\dump.c       \
                ..\globals.c    \
                ..\gv.c         \
@@ -716,6 +717,7 @@ MICROCORE_SRC       =               \
                ..\scope.c      \
                ..\sv.c         \
                ..\taint.c      \
+               ..\time64.c     \
                ..\toke.c       \
                ..\universal.c  \
                ..\utf8.c       \
diff --git a/dquote_static.c b/dquote.c
similarity index 53%
rename from dquote_static.c
rename to dquote.c
index 885ba06..9d35f20 100644
--- a/dquote_static.c
+++ b/dquote.c
@@ -1,46 +1,21 @@
-/*    dquote_static.c
+/*    dquote.c
  *
- * This file contains static functions that are related to
- * parsing double-quotish expressions, but are used in more than
- * one file.
+ * This file contains functions that are related to
+ * parsing double-quotish expressions.
  *
- * It is currently #included by regcomp.c and toke.c.
 */
 
-#define PERL_IN_DQUOTE_STATIC_C
-#include "embed.h"
-
-/*
- - regcurly - a little FSA that accepts {\d+,?\d*}
-    Pulled from regcomp.c.
- */
-PERL_STATIC_INLINE I32
-S_regcurly(const char *s)
-{
-    PERL_ARGS_ASSERT_REGCURLY;
-
-    if (*s++ != '{')
-       return FALSE;
-    if (!isDIGIT(*s))
-       return FALSE;
-    while (isDIGIT(*s))
-       s++;
-    if (*s == ',') {
-       s++;
-       while (isDIGIT(*s))
-           s++;
-    }
-
-    return *s == '}';
-}
+#include "EXTERN.h"
+#define PERL_IN_DQUOTE_C
+#include "perl.h"
 
 /* XXX Add documentation after final interface and behavior is decided */
-/* May want to show context for error, so would pass Perl_bslash_c(pTHX_ const 
char* current, const char* start, const bool output_warning)
+/* May want to show context for error, so would pass S_grok_bslash_c(pTHX_ 
const char* current, const char* start, const bool output_warning)
     U8 source = *current;
 */
 
-STATIC char
-S_grok_bslash_c(pTHX_ const char source, const bool output_warning)
+char
+Perl_grok_bslash_c(pTHX_ const char source, const bool output_warning)
 {
 
     U8 result;
@@ -79,8 +54,8 @@ S_grok_bslash_c(pTHX_ const char source, const bool 
output_warning)
     return result;
 }
 
-STATIC bool
-S_grok_bslash_o(pTHX_ char **s, UV *uv, const char** error_msg,
+bool
+Perl_grok_bslash_o(pTHX_ char **s, UV *uv, const char** error_msg,
                       const bool output_warning, const bool strict,
                       const bool silence_non_portable,
                       const bool UTF)
@@ -190,132 +165,8 @@ S_grok_bslash_o(pTHX_ char **s, UV *uv, const char** 
error_msg,
     return TRUE;
 }
 
-PERL_STATIC_INLINE bool
-S_grok_bslash_x(pTHX_ char **s, UV *uv, const char** error_msg,
-                      const bool output_warning, const bool strict,
-                      const bool silence_non_portable,
-                      const bool UTF)
-{
-
-/*  Documentation to be supplied when interface nailed down finally
- *  This returns FALSE if there is an error which the caller need not recover
- *  from; otherwise TRUE.
- *  It guarantees that the returned codepoint, *uv, when expressed as
- *  utf8 bytes, would fit within the skipped "\x{...}" bytes.
- *
- *  On input:
- *     s   is the address of a pointer to a NULL terminated string that begins
- *         with 'x', and the previous character was a backslash.  At exit, *s
- *         will be advanced to the byte just after those absorbed by this
- *         function.  Hence the caller can continue parsing from there.  In
- *         the case of an error, this routine has generally positioned *s to
- *         point just to the right of the first bad spot, so that a message
- *         that has a "<--" to mark the spot will be correctly positioned.
- *     uv  points to a UV that will hold the output value, valid only if the
- *         return from the function is TRUE
- *      error_msg is a pointer that will be set to an internal buffer giving an
- *         error message upon failure (the return is FALSE).  Untouched if
- *         function succeeds
- *     output_warning says whether to output any warning messages, or suppress
- *         them
- *     strict is true if anything out of the ordinary should cause this to
- *         fail instead of warn or be silent.  For example, it requires
- *         exactly 2 digits following the \x (when there are no braces).
- *         3 digits could be a mistake, so is forbidden in this mode.
- *      silence_non_portable is true if to suppress warnings about the code
- *          point returned being too large to fit on all platforms.
- *     UTF is true iff the string *s is encoded in UTF-8.
- */
-    char* e;
-    STRLEN numbers_len;
-    I32 flags = PERL_SCAN_DISALLOW_PREFIX;
-#ifdef DEBUGGING
-    char *start = *s - 1;
-    assert(*start == '\\');
-#endif
-
-    PERL_ARGS_ASSERT_GROK_BSLASH_X;
-
-    assert(**s == 'x');
-    (*s)++;
-
-    if (strict || ! output_warning) {
-        flags |= PERL_SCAN_SILENT_ILLDIGIT;
-    }
-
-    if (**s != '{') {
-        STRLEN len = (strict) ? 3 : 2;
-
-       *uv = grok_hex(*s, &len, &flags, NULL);
-       *s += len;
-        if (strict && len != 2) {
-            if (len < 2) {
-                *s += (UTF) ? UTF8SKIP(*s) : 1;
-                *error_msg = "Non-hex character";
-            }
-            else {
-                *error_msg = "Use \\x{...} for more than two hex characters";
-            }
-            return FALSE;
-        }
-       goto ok;
-    }
-
-    e = strchr(*s, '}');
-    if (!e) {
-        (*s)++;  /* Move past the '{' */
-        while (isXDIGIT(**s)) { /* Position beyond the legal digits */
-            (*s)++;
-        }
-        /* XXX The corresponding message above for \o is just '\\o{'; other
-         * messages for other constructs include the '}', so are inconsistent.
-         */
-       *error_msg = "Missing right brace on \\x{}";
-       return FALSE;
-    }
-
-    (*s)++;    /* Point to expected first digit (could be first byte of utf8
-                  sequence if not a digit) */
-    numbers_len = e - *s;
-    if (numbers_len == 0) {
-        if (strict) {
-            (*s)++;    /* Move past the } */
-            *error_msg = "Number with no digits";
-            return FALSE;
-        }
-        *s = e + 1;
-        *uv = 0;
-        goto ok;
-    }
-
-    flags |= PERL_SCAN_ALLOW_UNDERSCORES;
-    if (silence_non_portable) {
-        flags |= PERL_SCAN_SILENT_NON_PORTABLE;
-    }
-
-    *uv = grok_hex(*s, &numbers_len, &flags, NULL);
-    /* Note that if has non-hex, will ignore everything starting with that up
-     * to the '}' */
-
-    if (strict && numbers_len != (STRLEN) (e - *s)) {
-        *s += numbers_len;
-        *s += (UTF) ? UTF8SKIP(*s) : 1;
-        *error_msg = "Non-hex character";
-        return FALSE;
-    }
-
-    /* Return past the '}' */
-    *s = e + 1;
-
-  ok:
-    /* guarantee replacing "\x{...}" with utf8 bytes fits within
-     * existing space */
-    assert(OFFUNISKIP(*uv) < *s - start);
-    return TRUE;
-}
-
-STATIC char*
-S_form_short_octal_warning(pTHX_
+char*
+Perl_form_short_octal_warning(pTHX_
                            const char * const s, /* Points to first non-octal 
*/
                            const STRLEN len      /* Length of octals string, so
                                                     (s-len) points to first
diff --git a/dquote_inline.h b/dquote_inline.h
new file mode 100644
index 0000000..d8548bf
--- /dev/null
+++ b/dquote_inline.h
@@ -0,0 +1,160 @@
+/*    dquote_inline.h
+ *
+ *    Copyright (C) 2015 by Larry Wall and others
+ *
+ *    You may distribute under the terms of either the GNU General Public
+ *    License or the Artistic License, as specified in the README file.
+ */
+
+#ifndef DQUOTE_INLINE_H /* Guard against nested #inclusion */
+#define DQUOTE_INLINE_H
+
+/*
+ - regcurly - a little FSA that accepts {\d+,?\d*}
+    Pulled from reg.c.
+ */
+PERL_STATIC_INLINE I32
+S_regcurly(const char *s)
+{
+    PERL_ARGS_ASSERT_REGCURLY;
+
+    if (*s++ != '{')
+       return FALSE;
+    if (!isDIGIT(*s))
+       return FALSE;
+    while (isDIGIT(*s))
+       s++;
+    if (*s == ',') {
+       s++;
+       while (isDIGIT(*s))
+           s++;
+    }
+
+    return *s == '}';
+}
+
+PERL_STATIC_INLINE bool
+S_grok_bslash_x(pTHX_ char **s, UV *uv, const char** error_msg,
+                      const bool output_warning, const bool strict,
+                      const bool silence_non_portable,
+                      const bool UTF)
+{
+
+/*  Documentation to be supplied when interface nailed down finally
+ *  This returns FALSE if there is an error which the caller need not recover
+ *  from; otherwise TRUE.
+ *  It guarantees that the returned codepoint, *uv, when expressed as
+ *  utf8 bytes, would fit within the skipped "\x{...}" bytes.
+ *
+ *  On input:
+ *     s   is the address of a pointer to a NULL terminated string that begins
+ *         with 'x', and the previous character was a backslash.  At exit, *s
+ *         will be advanced to the byte just after those absorbed by this
+ *         function.  Hence the caller can continue parsing from there.  In
+ *         the case of an error, this routine has generally positioned *s to
+ *         point just to the right of the first bad spot, so that a message
+ *         that has a "<--" to mark the spot will be correctly positioned.
+ *     uv  points to a UV that will hold the output value, valid only if the
+ *         return from the function is TRUE
+ *      error_msg is a pointer that will be set to an internal buffer giving an
+ *         error message upon failure (the return is FALSE).  Untouched if
+ *         function succeeds
+ *     output_warning says whether to output any warning messages, or suppress
+ *         them
+ *     strict is true if anything out of the ordinary should cause this to
+ *         fail instead of warn or be silent.  For example, it requires
+ *         exactly 2 digits following the \x (when there are no braces).
+ *         3 digits could be a mistake, so is forbidden in this mode.
+ *      silence_non_portable is true if to suppress warnings about the code
+ *          point returned being too large to fit on all platforms.
+ *     UTF is true iff the string *s is encoded in UTF-8.
+ */
+    char* e;
+    STRLEN numbers_len;
+    I32 flags = PERL_SCAN_DISALLOW_PREFIX;
+#ifdef DEBUGGING
+    char *start = *s - 1;
+    assert(*start == '\\');
+#endif
+
+    PERL_ARGS_ASSERT_GROK_BSLASH_X;
+
+    assert(**s == 'x');
+    (*s)++;
+
+    if (strict || ! output_warning) {
+        flags |= PERL_SCAN_SILENT_ILLDIGIT;
+    }
+
+    if (**s != '{') {
+        STRLEN len = (strict) ? 3 : 2;
+
+       *uv = grok_hex(*s, &len, &flags, NULL);
+       *s += len;
+        if (strict && len != 2) {
+            if (len < 2) {
+                *s += (UTF) ? UTF8SKIP(*s) : 1;
+                *error_msg = "Non-hex character";
+            }
+            else {
+                *error_msg = "Use \\x{...} for more than two hex characters";
+            }
+            return FALSE;
+        }
+       goto ok;
+    }
+
+    e = strchr(*s, '}');
+    if (!e) {
+        (*s)++;  /* Move past the '{' */
+        while (isXDIGIT(**s)) { /* Position beyond the legal digits */
+            (*s)++;
+        }
+        /* XXX The corresponding message above for \o is just '\\o{'; other
+         * messages for other constructs include the '}', so are inconsistent.
+         */
+       *error_msg = "Missing right brace on \\x{}";
+       return FALSE;
+    }
+
+    (*s)++;    /* Point to expected first digit (could be first byte of utf8
+                  sequence if not a digit) */
+    numbers_len = e - *s;
+    if (numbers_len == 0) {
+        if (strict) {
+            (*s)++;    /* Move past the } */
+            *error_msg = "Number with no digits";
+            return FALSE;
+        }
+        *s = e + 1;
+        *uv = 0;
+        goto ok;
+    }
+
+    flags |= PERL_SCAN_ALLOW_UNDERSCORES;
+    if (silence_non_portable) {
+        flags |= PERL_SCAN_SILENT_NON_PORTABLE;
+    }
+
+    *uv = grok_hex(*s, &numbers_len, &flags, NULL);
+    /* Note that if has non-hex, will ignore everything starting with that up
+     * to the '}' */
+
+    if (strict && numbers_len != (STRLEN) (e - *s)) {
+        *s += numbers_len;
+        *s += (UTF) ? UTF8SKIP(*s) : 1;
+        *error_msg = "Non-hex character";
+        return FALSE;
+    }
+
+    /* Return past the '}' */
+    *s = e + 1;
+
+  ok:
+    /* guarantee replacing "\x{...}" with utf8 bytes fits within
+     * existing space */
+    assert(OFFUNISKIP(*uv) < *s - start);
+    return TRUE;
+}
+
+#endif  /* DQUOTE_INLINE_H */
diff --git a/dump.c b/dump.c
index c4d4018..7369a9a 100644
--- a/dump.c
+++ b/dump.c
@@ -1116,7 +1116,7 @@ Perl_gv_dump(pTHX_ GV *gv)
  */
 
 static const struct { const char type; const char *name; } magic_names[] = {
-#include "mg_names.c"
+#include "mg_names.inc"
        /* this null string terminates the list */
        { 0,                         NULL },
 };
diff --git a/embed.fnc b/embed.fnc
index af63435..9171ec6 100644
--- a/embed.fnc
+++ b/embed.fnc
@@ -798,22 +798,22 @@ p |OP*    |localize       |NN OP *o|I32 lex
 ApdR   |I32    |looks_like_number|NN SV *const sv
 Apd    |UV     |grok_bin       |NN const char* start|NN STRLEN* len_p|NN I32* 
flags|NULLOK NV *result
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
-EMsR   |char   |grok_bslash_c  |const char source|const bool output_warning
-EMsR   |bool   |grok_bslash_o  |NN char** s|NN UV* uv           \
+EMiR   |bool   |grok_bslash_x  |NN char** s|NN UV* uv           \
                                |NN const char** error_msg       \
                                |const bool output_warning       \
                                |const bool strict               \
                                |const bool silence_non_portable \
                                |const bool utf8
-EMiR   |bool   |grok_bslash_x  |NN char** s|NN UV* uv           \
+#endif
+EMpRX  |char   |grok_bslash_c  |const char source|const bool output_warning
+EMpRX  |bool   |grok_bslash_o  |NN char** s|NN UV* uv           \
                                |NN const char** error_msg       \
                                |const bool output_warning       \
                                |const bool strict               \
                                |const bool silence_non_portable \
                                |const bool utf8
-EMsPR  |char*|form_short_octal_warning|NN const char * const s  \
+EMpPRX |char*|form_short_octal_warning|NN const char * const s  \
                                |const STRLEN len
-#endif
 Apd    |UV     |grok_hex       |NN const char* start|NN STRLEN* len_p|NN I32* 
flags|NULLOK NV *result
 Apd    |int    |grok_infnan    |NN const char** sp|NN const char *send
 Apd    |int    |grok_number    |NN const char *pv|STRLEN len|NULLOK UV *valuep
diff --git a/embed.h b/embed.h
index 5963253..6cebb19 100644
--- a/embed.h
+++ b/embed.h
@@ -902,7 +902,10 @@
 #define av_reify(a)            Perl_av_reify(aTHX_ a)
 #define current_re_engine()    Perl_current_re_engine(aTHX)
 #define cv_ckproto_len_flags(a,b,c,d,e)        Perl_cv_ckproto_len_flags(aTHX_ 
a,b,c,d,e)
+#define form_short_octal_warning(a,b)  Perl_form_short_octal_warning(aTHX_ a,b)
 #define grok_atoUV             Perl_grok_atoUV
+#define grok_bslash_c(a,b)     Perl_grok_bslash_c(aTHX_ a,b)
+#define grok_bslash_o(a,b,c,d,e,f,g)   Perl_grok_bslash_o(aTHX_ a,b,c,d,e,f,g)
 #define mg_find_mglob(a)       Perl_mg_find_mglob(aTHX_ a)
 #define multideref_stringify(a,b)      Perl_multideref_stringify(aTHX_ a,b)
 #define op_clear(a)            Perl_op_clear(aTHX_ a)
@@ -1038,9 +1041,6 @@
 #define _core_swash_init(a,b,c,d,e,f,g)        Perl__core_swash_init(aTHX_ 
a,b,c,d,e,f,g)
 #  endif
 #  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
-#define form_short_octal_warning(a,b)  S_form_short_octal_warning(aTHX_ a,b)
-#define grok_bslash_c(a,b)     S_grok_bslash_c(aTHX_ a,b)
-#define grok_bslash_o(a,b,c,d,e,f,g)   S_grok_bslash_o(aTHX_ a,b,c,d,e,f,g)
 #define grok_bslash_x(a,b,c,d,e,f,g)   S_grok_bslash_x(aTHX_ a,b,c,d,e,f,g)
 #define regcurly               S_regcurly
 #  endif
diff --git a/ext/re/Makefile.PL b/ext/re/Makefile.PL
index c6338c7..278477c 100644
--- a/ext/re/Makefile.PL
+++ b/ext/re/Makefile.PL
@@ -24,29 +24,29 @@ sub upupfile {
 sub postamble {
     my $regcomp_c = upupfile('regcomp.c');
     my $regexec_c = upupfile('regexec.c');
-    my $dquote_static_c = upupfile('dquote_static.c');
-    my $inline_invlist_c = upupfile('inline_invlist.c');
+    my $dquote_c = upupfile('dquote.c');
+    my $invlist_inline_h = upupfile('invlist_inline.h');
 
     <<EOF;
 re_comp.c : $regcomp_c
        - \$(RM_F) re_comp.c
        \$(CP) $regcomp_c re_comp.c
 
-re_comp\$(OBJ_EXT) : re_comp.c dquote_static.c inline_invlist.c
+re_comp\$(OBJ_EXT) : re_comp.c dquote.c invlist_inline_h
 
 re_exec.c : $regexec_c
        - \$(RM_F) re_exec.c
        \$(CP) $regexec_c re_exec.c
 
-re_exec\$(OBJ_EXT) : re_exec.c inline_invlist.c
+re_exec\$(OBJ_EXT) : re_exec.c invlist_inline_h
 
-dquote_static.c : $dquote_static_c
-       - \$(RM_F) dquote_static.c
-       \$(CP) $dquote_static_c dquote_static.c
+dquote.c : $dquote_c
+       - \$(RM_F) dquote.c
+       \$(CP) $dquote_c dquote.c
 
-inline_invlist.c : $inline_invlist_c
-       - \$(RM_F) inline_invlist.c
-       \$(CP) $inline_invlist_c inline_invlist.c
+invlist_inline_h : $inline_invlist_c
+       - \$(RM_F) invlist_inline_h
+       \$(CP) $invlist_inline_h inline_invlist.c
 
 EOF
 }
diff --git a/gv.c b/gv.c
index 5d642af..821a383 100644
--- a/gv.c
+++ b/gv.c
@@ -34,7 +34,7 @@ Perl stores its global variables.
 #include "EXTERN.h"
 #define PERL_IN_GV_C
 #include "perl.h"
-#include "overload.c"
+#include "overload.inc"
 #include "keywords.h"
 #include "feature.h"
 
diff --git a/inline_invlist.c b/invlist_inline.h
similarity index 99%
rename from inline_invlist.c
rename to invlist_inline.h
index 1589f95..4ce04f9 100644
--- a/inline_invlist.c
+++ b/invlist_inline.h
@@ -1,4 +1,4 @@
-/*    inline_invlist.c
+/*    invlist_inline.h
  *
  *    Copyright (C) 2012 by Larry Wall and others
  *
diff --git a/mg_names.c b/mg_names.inc
similarity index 99%
rename from mg_names.c
rename to mg_names.inc
index 57d52db..fde6872 100644
--- a/mg_names.c
+++ b/mg_names.inc
@@ -1,6 +1,6 @@
 /* -*- buffer-read-only: t -*-
  *
- *    mg_names.c
+ *    mg_names.inc
  * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
  * This file is built by regen/mg_vtable.pl.
  * Any changes made here will be lost!
diff --git a/overload.c b/overload.inc
similarity index 99%
rename from overload.c
rename to overload.inc
index 3cf64c7..2383ef2 100644
--- a/overload.c
+++ b/overload.inc
@@ -1,6 +1,6 @@
 /* -*- buffer-read-only: t -*-
  *
- *    overload.c
+ *    overload.inc
  *
  *    Copyright (C) 1997, 1998, 2000, 2001, 2005, 2006, 2007, 2011
  *    by Larry Wall and others
diff --git a/packsizetables.c b/packsizetables.inc
similarity index 100%
rename from packsizetables.c
rename to packsizetables.inc
diff --git a/plan9/mkfile b/plan9/mkfile
index cf2153e..621a04c 100644
--- a/plan9/mkfile
+++ b/plan9/mkfile
@@ -35,7 +35,7 @@ ext_xs = IO.xs Socket.xs Opcode.xs  dl_none.xs Fcntl.xs 
POSIX.xs
 ext_c = ${ext_xs:%.xs=%.c}
 ext_obj = ${ext_xs:%.xs=%.$O}
 
-obj = av.$O deb.$O doio.$O doop.$O dump.$O globals.$O gv.$O hv.$O locale.$O 
malloc.$O mathoms.$O mg.$O numeric.$O op.$O pad.$O perlapi.$O perlio.$O 
perly.$O pp.$O pp_ctl.$O pp_hot.$O pp_pack.$O pp_so ... [115 chars truncated]
+obj = av.$O deb.$O doio.$O doop.$O dquote.$O dump.$O globals.$O gv.$O hv.$O 
locale.$O malloc.$O mathoms.$O mg.$O numeric.$O op.$O pad.$O perlapi.$O 
perlio.$O perly.$O pp.$O pp_ctl.$O pp_hot.$O pp_pac ... [135 chars truncated]
 
 OBJS = perl.$O plan9.$O $obj
 
diff --git a/pp_pack.c b/pp_pack.c
index cf1074e..dd0dd4e 100644
--- a/pp_pack.c
+++ b/pp_pack.c
@@ -237,7 +237,7 @@ S_mul128(pTHX_ SV *sv, U8 m)
 #define PACK_SIZE_UNPREDICTABLE                0x40    /* Not a fixed size 
element */
 #define PACK_SIZE_MASK                 0x3F
 
-#include "packsizetables.c"
+#include "packsizetables.inc"
 
 static void
 S_reverse_copy(const char *src, char *dest, STRLEN len)
diff --git a/pp_sys.c b/pp_sys.c
index b0f7798..ebd675b 100644
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -30,7 +30,6 @@
 #define PERL_IN_PP_SYS_C
 #include "perl.h"
 #include "time64.h"
-#include "time64.c"
 
 #ifdef I_SHADOW
 /* Shadow password support for solaris - [email protected]
@@ -4671,9 +4670,9 @@ PP(pp_gmtime)
     }
     else {
        if (PL_op->op_type == OP_LOCALTIME)
-           err = S_localtime64_r(&when, &tmbuf);
+           err = Perl_localtime64_r(&when, &tmbuf);
        else
-           err = S_gmtime64_r(&when, &tmbuf);
+           err = Perl_gmtime64_r(&when, &tmbuf);
     }
 
     if (err == NULL) {
diff --git a/proto.h b/proto.h
index 319b248..b7acae9 100644
--- a/proto.h
+++ b/proto.h
@@ -1264,6 +1264,13 @@ PERL_CALLCONV char*      Perl_form(pTHX_ const char* 
pat, ...)
 #define PERL_ARGS_ASSERT_FORM  \
        assert(pat)
 
+PERL_CALLCONV char*    Perl_form_short_octal_warning(pTHX_ const char * const 
s, const STRLEN len)
+                       __attribute__warn_unused_result__
+                       __attribute__pure__
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_FORM_SHORT_OCTAL_WARNING      \
+       assert(s)
+
 PERL_CALLCONV void     Perl_free_tied_hv_pool(pTHX);
 PERL_CALLCONV void     Perl_free_tmps(pTHX);
 PERL_CALLCONV AV*      Perl_get_av(pTHX_ const char *name, I32 flags)
@@ -1348,6 +1355,17 @@ PERL_CALLCONV UV Perl_grok_bin(pTHX_ const char* start, 
STRLEN* len_p, I32* flag
 #define PERL_ARGS_ASSERT_GROK_BIN      \
        assert(start); assert(len_p); assert(flags)
 
+PERL_CALLCONV char     Perl_grok_bslash_c(pTHX_ const char source, const bool 
output_warning)
+                       __attribute__warn_unused_result__;
+
+PERL_CALLCONV bool     Perl_grok_bslash_o(pTHX_ char** s, UV* uv, const char** 
error_msg, const bool output_warning, const bool strict, const bool 
silence_non_portable, const bool utf8)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1)
+                       __attribute__nonnull__(pTHX_2)
+                       __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_GROK_BSLASH_O \
+       assert(s); assert(uv); assert(error_msg)
+
 PERL_CALLCONV UV       Perl_grok_hex(pTHX_ const char* start, STRLEN* len_p, 
I32* flags, NV *result)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2)
@@ -7312,24 +7330,6 @@ PERL_CALLCONV SV*        Perl__core_swash_init(pTHX_ 
const char* pkg, const char* name,
 
 #endif
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
-STATIC char*   S_form_short_octal_warning(pTHX_ const char * const s, const 
STRLEN len)
-                       __attribute__warn_unused_result__
-                       __attribute__pure__
-                       __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_FORM_SHORT_OCTAL_WARNING      \
-       assert(s)
-
-STATIC char    S_grok_bslash_c(pTHX_ const char source, const bool 
output_warning)
-                       __attribute__warn_unused_result__;
-
-STATIC bool    S_grok_bslash_o(pTHX_ char** s, UV* uv, const char** error_msg, 
const bool output_warning, const bool strict, const bool silence_non_portable, 
const bool utf8)
-                       __attribute__warn_unused_result__
-                       __attribute__nonnull__(pTHX_1)
-                       __attribute__nonnull__(pTHX_2)
-                       __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_GROK_BSLASH_O \
-       assert(s); assert(uv); assert(error_msg)
-
 PERL_STATIC_INLINE bool        S_grok_bslash_x(pTHX_ char** s, UV* uv, const 
char** error_msg, const bool output_warning, const bool strict, const bool 
silence_non_portable, const bool utf8)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_1)
diff --git a/regcomp.c b/regcomp.c
index 3e6ac62..556e558 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -86,8 +86,8 @@ EXTERN_C const struct regexp_engine my_reg_engine;
 #  include "regcomp.h"
 #endif
 
-#include "dquote_static.c"
-#include "inline_invlist.c"
+#include "dquote_inline.h"
+#include "invlist_inline.h"
 #include "unicode_constants.h"
 
 #define HAS_NONLATIN1_FOLD_CLOSURE(i) \
@@ -7981,7 +7981,7 @@ S_reg_scan_name(pTHX_ RExC_state_t *pRExC_state, U32 
flags)
  * Some of the methods should always be private to the implementation, and some
  * should eventually be made public */
 
-/* The header definitions are in F<inline_invlist.c> */
+/* The header definitions are in F<invlist_inline.h> */
 
 PERL_STATIC_INLINE UV*
 S__invlist_array_init(SV* const invlist, const bool will_have_0)
diff --git a/regen/genpacksizetables.pl b/regen/genpacksizetables.pl
index 742eb6f..7a03dcd 100644
--- a/regen/genpacksizetables.pl
+++ b/regen/genpacksizetables.pl
@@ -70,7 +70,7 @@ my %asciimap  = map {chr $_, chr $_} 0..255;
 # will work; just choose one
 my %ebcdicmap = map {chr $_, Encode::encode("posix-bc", chr $_)} 0..255;
 
-my $fh = open_new('packsizetables.c', '>', { by => $0, from => 'its data'});
+my $fh = open_new('packsizetables.inc', '>', { by => $0, from => 'its data'});
 
 print $fh <<"EOC";
 #if TYPE_IS_SHRIEKING != 0x100
diff --git a/regen/mg_vtable.pl b/regen/mg_vtable.pl
index 46dce97..a05a7d4 100644
--- a/regen/mg_vtable.pl
+++ b/regen/mg_vtable.pl
@@ -2,7 +2,7 @@
 #
 # Regenerate (overwriting only if changed):
 #
-#    mg_names.c
+#    mg_names.inc
 #    mg_raw.h
 #    mg_vtable.h
 #    pod/perlguts.pod
@@ -155,7 +155,7 @@ my %sig =
 my ($vt, $raw, $names) = map {
     open_new($_, '>',
             { by => 'regen/mg_vtable.pl', file => $_, style => '*' });
-} 'mg_vtable.h', 'mg_raw.h', 'mg_names.c';
+} 'mg_vtable.h', 'mg_raw.h', 'mg_names.inc';
 my $guts = open_new("pod/perlguts.pod", ">");
 
 print $vt <<'EOH';
diff --git a/regen/overload.pl b/regen/overload.pl
index 165e1c1..c95ab2d 100644
--- a/regen/overload.pl
+++ b/regen/overload.pl
@@ -3,7 +3,7 @@
 # Regenerate (overwriting only if changed):
 #
 #    overload.h
-#    overload.c
+#    overload.inc
 #    lib/overload/numbers.pm
 #
 # from information stored in the DATA section of this file.
@@ -34,7 +34,7 @@ my ($c, $h) = map {
     open_new($_, '>',
             { by => 'regen/overload.pl', file => $_, style => '*',
               copyright => [1997, 1998, 2000, 2001, 2005 .. 2007, 2011] });
-} 'overload.c', 'overload.h';
+} 'overload.inc', 'overload.h';
 
 mkdir("lib/overload", 0777) unless -d 'lib/overload';
 my $p = open_new('lib/overload/numbers.pm', '>',
diff --git a/regen/regen_lib.pl b/regen/regen_lib.pl
index 81069fa..184d86b 100644
--- a/regen/regen_lib.pl
+++ b/regen/regen_lib.pl
@@ -37,7 +37,7 @@ sub open_new {
     my ($final_name, $mode, $header, $force) = @_;
     my $name = $final_name . '-new';
     my $lang = $final_name =~ /\.pod$/ ? 'Pod' :
-       $final_name =~ /\.(?:c|h|tab|act)$/ ? 'C' : 'Perl';
+       $final_name =~ /\.(?:c|h|inc|tab|act)$/ ? 'C' : 'Perl';
     if ($force && -e $final_name) {
         chmod 0777, $name if $Needs_Write;
         CORE::unlink $final_name
diff --git a/regexec.c b/regexec.c
index 3455498..ec4ed86 100644
--- a/regexec.c
+++ b/regexec.c
@@ -83,7 +83,7 @@
 #  include "regcomp.h"
 #endif
 
-#include "inline_invlist.c"
+#include "invlist_inline.h"
 #include "unicode_constants.h"
 
 #ifdef DEBUGGING
diff --git a/t/porting/args_assert.t b/t/porting/args_assert.t
index c3188a7..9d4c058 100644
--- a/t/porting/args_assert.t
+++ b/t/porting/args_assert.t
@@ -44,8 +44,8 @@ if (!@ARGV) {
        # *.c or */*.c
        push @ARGV, $prefix . $1 if m!^((?:[^/]+/)?[^/]+\.c)\t!;
     }
-    push @ARGV, $prefix . 'inline.h'; # Special case this '.h' which acts like
-                                      # a '.c'
+    # Special case the *inline.h since they behave like *.c
+    push @ARGV, glob "$prefix/*inline.h";
 }
 
 while (<>) {
diff --git a/time64.c b/time64.c
index f0e8d71..ca7f786 100644
--- a/time64.c
+++ b/time64.c
@@ -33,12 +33,15 @@ long' type can use localtime64_r() and gmtime64_r() which 
correctly
 converts the time even on 32-bit systems. Whether you have 64-bit time
 values will depend on the operating system.
 
-S_localtime64_r() is a 64-bit equivalent of localtime_r().
+Perl_localtime64_r() is a 64-bit equivalent of localtime_r().
 
-S_gmtime64_r() is a 64-bit equivalent of gmtime_r().
+Perl_gmtime64_r() is a 64-bit equivalent of gmtime_r().
 
 */
 
+#include "EXTERN.h"
+#define PERL_IN_TIME64_C
+#include "perl.h"
 #include "time64.h"
 
 static const char days_in_month[2][12] = {
@@ -69,16 +72,6 @@ static const short safe_years[SOLAR_CYCLE_LENGTH] = {
     2012, 2013, 2014, 2015
 };
 
-static const char dow_year_start[SOLAR_CYCLE_LENGTH] = {
-    5, 0, 1, 2,     /* 0       2016 - 2019 */
-    3, 5, 6, 0,     /* 4  */
-    1, 3, 4, 5,     /* 8  */
-    6, 1, 2, 3,     /* 12 */
-    4, 6, 0, 1,     /* 16 */
-    2, 4, 5, 6,     /* 20      2036, 2037, 2010, 2011 */
-    0, 2, 3, 4      /* 24      2012, 2013, 2014, 2015 */
-};
-
 /* Let's assume people are going to be looking for dates in the future.
    Let's provide some cheats so you can skip ahead.
    This has a 4x speed boost when near 2008.
@@ -340,7 +333,7 @@ static struct tm * S_gmtime_r(const time_t *clock, struct 
tm *result) {
 }
 #endif
 
-static struct TM *S_gmtime64_r (const Time64_T *in_time, struct TM *p)
+struct TM *Perl_gmtime64_r (const Time64_T *in_time, struct TM *p)
 {
     int v_tm_sec, v_tm_min, v_tm_hour, v_tm_mon, v_tm_wday;
     Time64_T v_tm_tday;
@@ -467,7 +460,7 @@ static struct TM *S_gmtime64_r (const Time64_T *in_time, 
struct TM *p)
 }
 
 
-static struct TM *S_localtime64_r (const Time64_T *time, struct TM *local_tm)
+struct TM *Perl_localtime64_r (const Time64_T *time, struct TM *local_tm)
 {
     time_t safe_time;
     struct tm safe_date;
@@ -491,7 +484,7 @@ static struct TM *S_localtime64_r (const Time64_T *time, 
struct TM *local_tm)
         return local_tm;
     }
 
-    if( S_gmtime64_r(time, &gm_tm) == NULL ) {
+    if( Perl_gmtime64_r(time, &gm_tm) == NULL ) {
         TIME64_TRACE1("gmtime64_r returned null for %lld\n", *time);
         return NULL;
     }
diff --git a/time64.h b/time64.h
index b7306d0..6f60bce 100644
--- a/time64.h
+++ b/time64.h
@@ -49,9 +49,8 @@ struct TM64 {
 
 
 /* Declare functions */
-static struct TM *S_gmtime64_r    (const Time64_T *, struct TM *);
-static struct TM *S_localtime64_r (const Time64_T *, struct TM *);
-static Time64_T   S_timegm64      (struct TM *);
+struct TM *Perl_gmtime64_r    (const Time64_T *, struct TM *);
+struct TM *Perl_localtime64_r (const Time64_T *, struct TM *);
 
 
 /* Not everyone has gm/localtime_r(), provide a replacement */
diff --git a/toke.c b/toke.c
index db82129..205b00b 100644
--- a/toke.c
+++ b/toke.c
@@ -38,7 +38,7 @@ Individual members of C<PL_parser> have their own 
documentation.
 #include "EXTERN.h"
 #define PERL_IN_TOKE_C
 #include "perl.h"
-#include "dquote_static.c"
+#include "dquote_inline.h"
 
 #define new_constant(a,b,c,d,e,f,g)    \
        S_new_constant(aTHX_ a,b,STR_WITH_LEN(c),d,e,f, g)
diff --git a/utf8.c b/utf8.c
index 360e1f5..cbff7a7 100644
--- a/utf8.c
+++ b/utf8.c
@@ -31,7 +31,7 @@
 #include "EXTERN.h"
 #define PERL_IN_UTF8_C
 #include "perl.h"
-#include "inline_invlist.c"
+#include "invlist_inline.h"
 
 static const char unees[] =
     "Malformed UTF-8 character (unexpected end of string)";
diff --git a/vms/descrip_mms.template b/vms/descrip_mms.template
index 5a7c49d..e651c1e 100644
--- a/vms/descrip_mms.template
+++ b/vms/descrip_mms.template
@@ -226,17 +226,17 @@ FULLLIBS2 = $(LIBS2)|$(THRLIBS1)|$(THRLIBS2)
 
 #### End of system configuration section. ####
 
-c0 = $(MALLOC_C) av.c caretx.c deb.c doio.c doop.c dump.c globals.c gv.c hv.c 
mro_core.c
+c0 = $(MALLOC_C) av.c caretx.c deb.c doio.c doop.c dquote.c dump.c globals.c 
gv.c hv.c mro_core.c
 c1 = mg.c locale.c mathoms.c miniperlmain.c numeric.c op.c pad.c perl.c 
perlapi.c perlio.c
 c2 = perly.c pp.c pp_ctl.c pp_hot.c pp_pack.c pp_sort.c pp_sys.c regcomp.c 
regexec.c reentr.c
-c3 = run.c scope.c sv.c taint.c toke.c universal.c utf8.c util.c vms.c 
keywords.c
+c3 = run.c scope.c sv.c taint.c time64.c toke.c universal.c utf8.c util.c 
vms.c keywords.c
 c = $(c0) $(c1) $(c2) $(c3)
 
 obj0 = perl$(O)
-obj1 = $(MALLOC_O) av$(O) caretx$(O) deb$(O) doio$(O) doop$(O) dump$(O) 
mro_core$(O) globals$(O) gv$(O) hv$(O)
+obj1 = $(MALLOC_O) av$(O) caretx$(O) deb$(O) doio$(O) doop$(O) dquote(O) 
dump$(O) mro_core$(O) globals$(O) gv$(O) hv$(O)
 obj2 = keywords$(O) locale$(O) mathoms$(O) mg$(O) miniperlmain$(O) numeric$(O) 
op$(O) pad$(O) perlapi$(O) perlio$(O) 
 obj3 = perly$(O) pp$(O) pp_ctl$(O) pp_hot$(O) reentr$(O) pp_pack$(O) 
pp_sort$(O) pp_sys$(O) regcomp$(O) 
-obj4 = regexec$(O) run$(O) scope$(O) sv$(O) taint$(O) toke$(O) universal$(O) 
utf8$(O) util$(O) vms$(O)
+obj4 = regexec$(O) run$(O) scope$(O) sv$(O) taint$(O) time64$(O) toke$(O) 
universal$(O) utf8$(O) util$(O) vms$(O)
 
 mini_obj = perlmini$(O) $(obj1) $(obj2) $(obj3) $(obj4)
 obj = $(obj0) $(obj1) $(obj2) $(obj3) $(obj4)
@@ -625,6 +625,8 @@ doio$(O) : doio.c $(h)
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 doop$(O) : doop.c $(h)
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
+dquote$(O) : dquote.c $(h)
+       $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 dump$(O) : dump.c $(h)
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 globals$(O) : globals.c $(generated_headers) $(h)
@@ -689,6 +691,8 @@ sv$(O) : sv.c $(h)
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 taint$(O) : taint.c $(h)
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
+time64$(O) : time64.c $(h)
+       $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 toke$(O) : toke.c $(h)
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 universal$(O) : universal.c $(h)
diff --git a/win32/GNUmakefile b/win32/GNUmakefile
index 4f496c9..f92c0f0 100644
--- a/win32/GNUmakefile
+++ b/win32/GNUmakefile
@@ -537,6 +537,7 @@ MICROCORE_SRC       =               \
                ..\deb.c        \
                ..\doio.c       \
                ..\doop.c       \
+               ..\dquote.c     \
                ..\dump.c       \
                ..\globals.c    \
                ..\gv.c         \
@@ -565,6 +566,7 @@ MICROCORE_SRC       =               \
                ..\scope.c      \
                ..\sv.c         \
                ..\taint.c      \
+               ..\time64.c     \
                ..\toke.c       \
                ..\universal.c  \
                ..\utf8.c       \
diff --git a/win32/Makefile b/win32/Makefile
index 0b77b2c..807c444 100644
--- a/win32/Makefile
+++ b/win32/Makefile
@@ -702,6 +702,7 @@ MICROCORE_SRC       =               \
                ..\deb.c        \
                ..\doio.c       \
                ..\doop.c       \
+               ..\dquote.c     \
                ..\dump.c       \
                ..\globals.c    \
                ..\gv.c         \
@@ -730,6 +731,7 @@ MICROCORE_SRC       =               \
                ..\scope.c      \
                ..\sv.c         \
                ..\taint.c      \
+               ..\time64.c     \
                ..\toke.c       \
                ..\universal.c  \
                ..\utf8.c       \
diff --git a/win32/Makefile.ce b/win32/Makefile.ce
index 67d43c9..b9a979c 100644
--- a/win32/Makefile.ce
+++ b/win32/Makefile.ce
@@ -622,6 +622,7 @@ MICROCORE_SRC       =               \
                ..\deb.c        \
                ..\doio.c       \
                ..\doop.c       \
+               ..\dquote.c     \
                ..\dump.c       \
                ..\globals.c    \
                ..\gv.c         \
@@ -650,6 +651,7 @@ MICROCORE_SRC       =               \
                ..\scope.c      \
                ..\sv.c         \
                ..\taint.c      \
+               ..\time64.c     \
                ..\toke.c       \
                ..\universal.c  \
                ..\utf8.c       \
@@ -867,6 +869,7 @@ $(DLLDIR)\caretx.obj \
 $(DLLDIR)\deb.obj \
 $(DLLDIR)\doio.obj \
 $(DLLDIR)\doop.obj \
+$(DLLDIR)\dquote.obj \
 $(DLLDIR)\dump.obj \
 $(DLLDIR)\globals.obj \
 $(DLLDIR)\gv.obj \
@@ -896,6 +899,7 @@ $(DLLDIR)\run.obj \
 $(DLLDIR)\scope.obj \
 $(DLLDIR)\sv.obj \
 $(DLLDIR)\taint.obj \
+$(DLLDIR)\time64.obj \
 $(DLLDIR)\toke.obj \
 $(DLLDIR)\universal.obj \
 $(DLLDIR)\utf8.obj \
diff --git a/win32/makefile.mk b/win32/makefile.mk
index 48f34bb..3e59130 100644
--- a/win32/makefile.mk
+++ b/win32/makefile.mk
@@ -847,6 +847,7 @@ MICROCORE_SRC       =               \
                ..\deb.c        \
                ..\doio.c       \
                ..\doop.c       \
+               ..\dquote.c     \
                ..\dump.c       \
                ..\globals.c    \
                ..\gv.c         \
@@ -875,6 +876,7 @@ MICROCORE_SRC       =               \
                ..\scope.c      \
                ..\sv.c         \
                ..\taint.c      \
+               ..\time64.c     \
                ..\toke.c       \
                ..\universal.c  \
                ..\utf8.c       \

--
Perl5 Master Repository

Reply via email to