This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
We can use the C pre-processor to build a single, longer string
[perl5.git] / perl.c
diff --git a/perl.c b/perl.c
index e6bb9dd..13ce59e 100644 (file)
--- a/perl.c
+++ b/perl.c
@@ -258,7 +258,7 @@ perl_construct(pTHXx)
            SvREFCNT(&PL_sv_placeholder) = (~(U32)0)/2;
        }
 
-       PL_sighandlerp = Perl_sighandler;
+       PL_sighandlerp = (Sighandler_t) Perl_sighandler;
        PL_pidstatus = newHV();
     }
 
@@ -1685,9 +1685,8 @@ S_parse_body(pTHX_ char **env, XSINIT_t xsinit)
                argc--,argv++;
            }
            if (s && *s) {
-               char *p;
                STRLEN len = strlen(s);
-               p = savepvn(s, len);
+               const char * const p = savepvn(s, len);
                incpush(p, TRUE, TRUE, FALSE, FALSE);
                sv_catpvn(sv, "-I", 2);
                sv_catpvn(sv, p, len);
@@ -1726,43 +1725,86 @@ S_parse_body(pTHX_ char **env, XSINIT_t xsinit)
 #endif
                    opts = SvCUR(opts_prog);
 
-                   sv_catpv(opts_prog,"\"  Compile-time options:");
+                   sv_catpv(opts_prog,"\"  Compile-time options:"
 #  ifdef DEBUGGING
-                   sv_catpv(opts_prog," DEBUGGING");
+                            " DEBUGGING"
+#  endif
+#  ifdef DEBUG_LEAKING_SCALARS_FORK_DUMP
+                            " DEBUG_LEAKING_SCALARS_FORK_DUMP"
+#  endif
+#  ifdef FAKE_THREADS
+                            " FAKE_THREADS"
 #  endif
 #  ifdef MULTIPLICITY
-                   sv_catpv(opts_prog," MULTIPLICITY");
+                            " MULTIPLICITY"
+#  endif
+#  ifdef MYMALLOC
+                            " MYMALLOC"
+#  endif
+#  ifdef PERL_DONT_CREATE_GVSV
+                            " PERL_DONT_CREATE_GVSV"
+#  endif
+#  ifdef PERL_GLOBAL_STRUCT
+                            " PERL_GLOBAL_STRUCT"
+#  endif
+#  ifdef PERL_IMPLICIT_CONTEXT
+                            " PERL_IMPLICIT_CONTEXT"
+#  endif
+#  ifdef PERL_IMPLICIT_SYS
+                            " PERL_IMPLICIT_SYS"
+#  endif
+#  ifdef PERL_MALLOC_WRAP
+                            " PERL_MALLOC_WRAP"
+#  endif
+#  ifdef PERL_NEED_APPCTX
+                            " PERL_NEED_APPCTX"
+#  endif
+#  ifdef PERL_NEED_TIMESBASE
+                            " PERL_NEED_TIMESBASE"
+#  endif
+#  ifdef PERL_OLD_COPY_ON_WRITE
+                            " PERL_OLD_COPY_ON_WRITE"
+#  endif
+#  ifdef PL_OP_SLAB_ALLOC
+                            " PL_OP_SLAB_ALLOC"
+#  endif
+#  ifdef THREADS_HAVE_PIDS
+                            " THREADS_HAVE_PIDS"
 #  endif
 #  ifdef USE_5005THREADS
-                   sv_catpv(opts_prog," USE_5005THREADS");
+                            " USE_5005THREADS"
 #  endif
-#  ifdef USE_ITHREADS
-                   sv_catpv(opts_prog," USE_ITHREADS");
+#  ifdef USE_64_BIT_ALL
+                            " USE_64_BIT_ALL"
 #  endif
 #  ifdef USE_64_BIT_INT
-                   sv_catpv(opts_prog," USE_64_BIT_INT");
+                            " USE_64_BIT_INT"
 #  endif
-#  ifdef USE_64_BIT_ALL
-                   sv_catpv(opts_prog," USE_64_BIT_ALL");
+#  ifdef USE_ITHREADS
+                            " USE_ITHREADS"
+#  endif
+#  ifdef USE_LARGE_FILES
+                            " USE_LARGE_FILES"
 #  endif
 #  ifdef USE_LONG_DOUBLE
-                   sv_catpv(opts_prog," USE_LONG_DOUBLE");
+                            " USE_LONG_DOUBLE"
 #  endif
-#  ifdef USE_LARGE_FILES
-                   sv_catpv(opts_prog," USE_LARGE_FILES");
+#  ifdef USE_PERLIO
+                            " USE_PERLIO"
 #  endif
-#  ifdef USE_SOCKS
-                   sv_catpv(opts_prog," USE_SOCKS");
+#  ifdef USE_REENTRANT_API
+                            " USE_REENTRANT_API"
+#  endif
+#  ifdef USE_SFIO
+                            " USE_SFIO"
 #  endif
 #  ifdef USE_SITECUSTOMIZE
-                   sv_catpv(opts_prog," USE_SITECUSTOMIZE");
+                            " USE_SITECUSTOMIZE"
 #  endif              
-#  ifdef PERL_IMPLICIT_CONTEXT
-                   sv_catpv(opts_prog," PERL_IMPLICIT_CONTEXT");
-#  endif
-#  ifdef PERL_IMPLICIT_SYS
-                   sv_catpv(opts_prog," PERL_IMPLICIT_SYS");
+#  ifdef USE_SOCKS
+                            " USE_SOCKS"
 #  endif
+                            );
 
                    while (SvCUR(opts_prog) > opts+76) {
                        /* find last space after "options: " and before col 76
@@ -1960,7 +2002,7 @@ S_parse_body(pTHX_ char **env, XSINIT_t xsinit)
 #  define SIGCHLD SIGCLD
 #endif
        Sighandler_t sigstate = rsignal_state(SIGCHLD);
-       if (sigstate == SIG_IGN) {
+       if (sigstate == (Sighandler_t) SIG_IGN) {
            if (ckWARN(WARN_SIGNAL))
                Perl_warner(aTHX_ packWARN(WARN_SIGNAL),
                            "Can't ignore signal CHLD, forcing to default");
@@ -2197,8 +2239,10 @@ S_run_body(pTHX_ I32 oldscope)
 
     if (!PL_restartop) {
        DEBUG_x(dump_all());
+#ifdef DEBUGGING
        if (!DEBUG_q_TEST)
          PERL_DEBUG(PerlIO_printf(Perl_debug_log, "\nEXECUTING...\n\n"));
+#endif
        DEBUG_S(PerlIO_printf(Perl_debug_log, "main thread is 0x%"UVxf"\n",
                              PTR2UV(thr)));
 
@@ -3372,7 +3416,7 @@ S_init_main_stash(pTHX)
     SvREFCNT_dec(GvHV(gv));
     GvHV(gv) = (HV*)SvREFCNT_inc(PL_defstash);
     SvREADONLY_on(gv);
-    Perl_hv_name_set(aTHX_ PL_defstash, "main", 4, 0);
+    hv_name_set(PL_defstash, "main", 4, 0);
     PL_incgv = gv_HVadd(gv_AVadd(gv_fetchpv("INC",TRUE, SVt_PVAV)));
     GvMULTI_on(PL_incgv);
     PL_hintgv = gv_fetchpv("\010",TRUE, SVt_PV); /* ^H */
@@ -4410,10 +4454,10 @@ S_init_predump_symbols(pTHX)
 void
 Perl_init_argv_symbols(pTHX_ register int argc, register char **argv)
 {
-    char *s;
     argc--,argv++;     /* skip name of script */
     if (PL_doswitches) {
        for (; argc > 0 && **argv == '-'; argc--,argv++) {
+           char *s;
            if (!argv[0][1])
                break;
            if (argv[0][1] == '-' && !argv[0][2]) {
@@ -4433,7 +4477,7 @@ Perl_init_argv_symbols(pTHX_ register int argc, register char **argv)
        (void)gv_AVadd(PL_argvgv);
        av_clear(GvAVn(PL_argvgv));
        for (; argc > 0; argc--,argv++) {
-           SV *sv = newSVpv(argv[0],0);
+           SV * const sv = newSVpv(argv[0],0);
            av_push(GvAVn(PL_argvgv),sv);
            if (!(PL_unicode & PERL_UNICODE_LOCALE_FLAG) || PL_utf8locale) {
                 if (PL_unicode & PERL_UNICODE_ARGV_FLAG)