Re: [PATCH 5.8.7 RC1] lib/Carp.t todo for VMS
[p5sagit/p5-mst-13.2.git] / pp_sys.c
index c127b64..ab55aff 100644 (file)
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -321,7 +321,7 @@ PP(pp_backtick)
     PerlIO *fp;
     STRLEN n_a;
     char *tmps = POPpx;
-    I32 gimme = GIMME_V;
+    const I32 gimme = GIMME_V;
     const char *mode = "r";
 
     TAINT_PROPER("``");
@@ -348,7 +348,7 @@ PP(pp_backtick)
            ENTER;
            SAVESPTR(PL_rs);
            PL_rs = &PL_sv_undef;
-           sv_setpv(TARG, ""); /* note that this preserves previous buffer */
+           sv_setpvn(TARG, "", 0);     /* note that this preserves previous buffer */
            while (sv_gets(TARG, fp, SvCUR(TARG)) != Nullch)
                /*SUPPRESS 530*/
                ;
@@ -798,7 +798,7 @@ PP(pp_tie)
     switch(SvTYPE(varsv)) {
        case SVt_PVHV:
            methname = "TIEHASH";
-           HvEITER((HV *)varsv) = Null(HE *);
+           HvEITER_set((HV *)varsv, 0);
            break;
        case SVt_PVAV:
            methname = "TIEARRAY";
@@ -1210,7 +1210,7 @@ PP(pp_getc)
     if (gv && (io = GvIO(gv))
        && (mg = SvTIED_mg((SV*)io, PERL_MAGIC_tiedscalar)))
     {
-       I32 gimme = GIMME_V;
+       const I32 gimme = GIMME_V;
        PUSHMARK(SP);
        XPUSHs(SvTIED_obj((SV*)io, mg));
        PUTBACK;
@@ -1230,7 +1230,7 @@ PP(pp_getc)
        RETPUSHUNDEF;
     }
     TAINT;
-    sv_setpv(TARG, " ");
+    sv_setpvn(TARG, " ", 1);
     *SvPVX(TARG) = PerlIO_getc(IoIFP(GvIOp(gv))); /* should never be EOF */
     if (PerlIO_isutf8(IoIFP(GvIOp(gv)))) {
        /* Find out how many bytes the char needs */
@@ -1256,7 +1256,7 @@ S_doform(pTHX_ CV *cv, GV *gv, OP *retop)
 {
     dVAR;
     register PERL_CONTEXT *cx;
-    I32 gimme = GIMME_V;
+    const I32 gimme = GIMME_V;
 
     ENTER;
     SAVETMPS;
@@ -1358,7 +1358,7 @@ PP(pp_leavewrite)
        }
        if (IoFLAGS(io) & IOf_DIDTOP) { /* Oh dear.  It still doesn't fit. */
            I32 lines = IoLINES_LEFT(io);
-           char *s = SvPVX(PL_formtarget);
+           const char *s = SvPVX(PL_formtarget);
            if (lines <= 0)             /* Yow, header didn't even fit!!! */
                goto forget_top;
            while (lines-- > 0) {
@@ -1368,7 +1368,7 @@ PP(pp_leavewrite)
                s++;
            }
            if (s) {
-               STRLEN save = SvCUR(PL_formtarget);
+               const STRLEN save = SvCUR(PL_formtarget);
                SvCUR_set(PL_formtarget, s - SvPVX(PL_formtarget));
                do_print(PL_formtarget, ofp);
                SvCUR_set(PL_formtarget, save);
@@ -2822,7 +2822,7 @@ PP(pp_stat)
        if (gv != PL_defgv) {
            PL_laststype = OP_STAT;
            PL_statgv = gv;
-           sv_setpv(PL_statname, "");
+           sv_setpvn(PL_statname, "", 0);
            PL_laststatval = (GvIO(gv) && IoIFP(GvIOp(gv))
                ? PerlLIO_fstat(PerlIO_fileno(IoIFP(GvIOn(gv))), &PL_statcache) : -1);
        }
@@ -3423,7 +3423,7 @@ PP(pp_fttext)
        else {
            PL_statgv = gv;
            PL_laststatval = -1;
-           sv_setpv(PL_statname, "");
+           sv_setpvn(PL_statname, "", 0);
            io = GvIO(PL_statgv);
        }
        if (io && IoIFP(io)) {
@@ -3928,7 +3928,7 @@ PP(pp_readdir)
     dSP;
 
     SV *sv;
-    I32 gimme = GIMME;
+    const I32 gimme = GIMME;
     GV *gv = (GV *)POPs;
     register Direntry_t *dp;
     register IO *io = GvIOn(gv);
@@ -4377,6 +4377,12 @@ PP(pp_getppid)
 #ifdef HAS_GETPPID
     dSP; dTARGET;
 #   ifdef THREADS_HAVE_PIDS
+    {
+       IV cur_ppid = getppid();
+       if (cur_ppid == 1)
+           /* maybe the parent process has died. Refresh ppid cache */
+           PL_ppid = cur_ppid;
+    }
     XPUSHi( PL_ppid );
 #   else
     XPUSHi( getppid() );
@@ -5877,5 +5883,5 @@ lockf_emulate_flock(int fd, int operation)
  * indent-tabs-mode: t
  * End:
  *
- * vim: shiftwidth=4:
-*/
+ * ex: set ts=8 sts=4 sw=4 noet:
+ */