new md5sum for modified MD5.xs file
[p5sagit/p5-mst-13.2.git] / perl.c
diff --git a/perl.c b/perl.c
index 77e3cb7..d3c8a95 100644 (file)
--- a/perl.c
+++ b/perl.c
@@ -788,7 +788,8 @@ perl_destruct(pTHXx)
            MAGIC* moremagic;
            for (mg = SvMAGIC(PL_mess_sv); mg; mg = moremagic) {
                moremagic = mg->mg_moremagic;
-               if (mg->mg_ptr && mg->mg_type != 'g' && mg->mg_len >= 0)
+               if (mg->mg_ptr && mg->mg_type != PERL_MAGIC_regex_global
+                                               && mg->mg_len >= 0)
                    Safefree(mg->mg_ptr);
                Safefree(mg);
            }
@@ -964,7 +965,7 @@ S_parse_body(pTHX_ char **env, XSINIT_t xsinit)
     AV* comppadlist;
     register SV *sv;
     register char *s;
-    char *cddir = Nullch;
+    char *popts, *cddir = Nullch;
 
     sv_setpvn(PL_linestr,"",0);
     sv = newSVpvn("",0);               /* first used for -I flags */
@@ -1189,8 +1190,9 @@ print \"  \\@INC:\\n    @INC\\n\";");
 #ifndef SECURE_INTERNAL_GETENV
         !PL_tainting &&
 #endif
-       (s = PerlEnv_getenv("PERL5OPT")))
+       (popts = PerlEnv_getenv("PERL5OPT")))
     {
+       s = savepv(popts);
        while (isSPACE(*s))
            s++;
        if (*s == '-' && *(s+1) == 'T')
@@ -1304,11 +1306,7 @@ print \"  \\@INC:\\n    @INC\\n\";");
        (*xsinit)(aTHXo);       /* in case linked C routines want magical variables */
 #ifndef PERL_MICRO
 #if defined(VMS) || defined(WIN32) || defined(DJGPP) || defined(__CYGWIN__) || defined(EPOC)
-#  if defined(VMS)
-    init_os_extras(aTHXo);
-#  else
     init_os_extras();
-#  endif
 #endif
 #endif
 
@@ -1683,7 +1681,7 @@ Perl_call_sv(pTHX_ SV *sv, I32 flags)
     LOGOP myop;                /* fake syntax tree node */
     UNOP method_op;
     I32 oldmark;
-    I32 retval;
+    I32 retval = 0;
     I32 oldscope;
     bool oldcatch = CATCH_GET;
     int ret;
@@ -1871,7 +1869,7 @@ Perl_eval_sv(pTHX_ SV *sv, I32 flags)
     dSP;
     UNOP myop;         /* fake syntax tree node */
     I32 oldmark = SP - PL_stack_base;
-    I32 retval;
+    I32 retval = 0;
     I32 oldscope;
     int ret;
     OP* oldop = PL_op;
@@ -2017,7 +2015,7 @@ Perl_magicname(pTHX_ char *sym, char *name, I32 namlen)
     register GV *gv;
 
     if ((gv = gv_fetchpv(sym,TRUE, SVt_PV)))
-       sv_magic(GvSV(gv), (SV*)gv, 0, name, namlen);
+       sv_magic(GvSV(gv), (SV*)gv, PERL_MAGIC_sv, name, namlen);
 }
 
 STATIC void
@@ -2291,9 +2289,22 @@ Perl_moreswitches(pTHX_ char *s)
        s++;
        return s;
     case 'v':
+#if !defined(DGUX)
        PerlIO_printf(PerlIO_stdout(),
                      Perl_form(aTHX_ "\nThis is perl, v%"VDf" built for %s",
                                PL_patchlevel, ARCHNAME));
+#else /* DGUX */
+/* Adjust verbose output as in the perl that ships with the DG/UX OS from EMC */
+       PerlIO_printf(PerlIO_stdout(),
+                       Perl_form(aTHX_ "\nThis is perl, version %vd\n", PL_patchlevel));
+       PerlIO_printf(PerlIO_stdout(),
+                       Perl_form(aTHX_ "        built under %s at %s %s\n",
+                                       OSNAME, __DATE__, __TIME__));
+       PerlIO_printf(PerlIO_stdout(),
+                       Perl_form(aTHX_ "        OS Specific Release: %s\n",
+                                       OSVERS));
+#endif /* !DGUX */
+
 #if defined(LOCAL_PATCH_COUNT)
        if (LOCAL_PATCH_COUNT > 0)
            PerlIO_printf(PerlIO_stdout(),
@@ -3307,8 +3318,8 @@ S_init_postdump_symbols(pTHX_ register int argc, register char **argv, register
     char *s;
     SV *sv;
     GV* tmpgv;
-    char **dup_env_base = 0;
 #ifdef NEED_ENVIRON_DUP_FOR_MODIFY
+    char **dup_env_base = 0;
     int dup_env_count = 0;
 #endif
 
@@ -3368,7 +3379,7 @@ S_init_postdump_symbols(pTHX_ register int argc, register char **argv, register
        HV *hv;
        GvMULTI_on(PL_envgv);
        hv = GvHVn(PL_envgv);
-       hv_magic(hv, Nullgv, 'E');
+       hv_magic(hv, Nullgv, PERL_MAGIC_env);
 #ifdef USE_ENVIRON_ARRAY
        /* Note that if the supplied env parameter is actually a copy
           of the global environ then it may now point to free'd memory