Missed a New() -> Newx().
[p5sagit/p5-mst-13.2.git] / doio.c
diff --git a/doio.c b/doio.c
index 79ca1fd..b105845 100644 (file)
--- a/doio.c
+++ b/doio.c
@@ -71,7 +71,7 @@ Perl_do_open9(pTHX_ GV *gv, register char *name, I32 len, int as_raw,
              int rawmode, int rawperm, PerlIO *supplied_fp, SV *svs,
              I32 num_svs)
 {
-    (void)num_svs;
+    PERL_UNUSED_ARG(num_svs);
     return do_openn(gv, name, len, as_raw, rawmode, rawperm,
                    supplied_fp, &svs, 1);
 }
@@ -82,7 +82,7 @@ Perl_do_openn(pTHX_ GV *gv, register char *name, I32 len, int as_raw,
              I32 num_svs)
 {
     dVAR;
-    register IO *io = GvIOn(gv);
+    register IO * const io = GvIOn(gv);
     PerlIO *saveifp = Nullfp;
     PerlIO *saveofp = Nullfp;
     int savefd = -1;
@@ -213,7 +213,6 @@ Perl_do_openn(pTHX_ GV *gv, register char *name, I32 len, int as_raw,
        SAVEFREEPV(type);
 
         /* Lose leading and trailing white space */
-        /*SUPPRESS 530*/
         for (; isSPACE(*type); type++) ;
         while (tend > type && isSPACE(tend[-1]))
            *--tend = '\0';
@@ -253,7 +252,6 @@ Perl_do_openn(pTHX_ GV *gv, register char *name, I32 len, int as_raw,
                }
                type++;
            }
-           /*SUPPRESS 530*/
            for (type++; isSPACE(*type); type++) ;
            if (!num_svs) {
                name = type;
@@ -341,7 +339,6 @@ Perl_do_openn(pTHX_ GV *gv, register char *name, I32 len, int as_raw,
                    if (num_svs > 1) {
                        Perl_croak(aTHX_ "More than one argument to '%c&' open",IoTYPE(io));
                    }
-                   /*SUPPRESS 530*/
                    for (; isSPACE(*type); type++) ;
                    if (num_svs && (SvIOK(*svp) || (SvPOK(*svp) && looks_like_number(*svp)))) {
                        fd = SvUV(*svp);
@@ -418,10 +415,8 @@ Perl_do_openn(pTHX_ GV *gv, register char *name, I32 len, int as_raw,
                }
            } /* & */
            else {
-               /*SUPPRESS 530*/
                for (; isSPACE(*type); type++) ;
                if (*type == IoTYPE_STD && (!type[1] || isSPACE(type[1]) || type[1] == ':')) {
-                   /*SUPPRESS 530*/
                    type++;
                    fp = PerlIO_stdout();
                    IoTYPE(io) = IoTYPE_STD;
@@ -443,7 +438,6 @@ Perl_do_openn(pTHX_ GV *gv, register char *name, I32 len, int as_raw,
               goto unknown_open_mode;
        } /* IoTYPE_WRONLY */
        else if (*type == IoTYPE_RDONLY) {
-           /*SUPPRESS 530*/
            for (type++; isSPACE(*type); type++) ;
            mode[0] = 'r';
 #ifdef HAS_STRLCAT
@@ -461,7 +455,6 @@ Perl_do_openn(pTHX_ GV *gv, register char *name, I32 len, int as_raw,
                goto duplicity;
            }
            if (*type == IoTYPE_STD && (!type[1] || isSPACE(type[1]) || type[1] == ':')) {
-               /*SUPPRESS 530*/
                type++;
                fp = PerlIO_stdin();
                IoTYPE(io) = IoTYPE_STD;
@@ -491,8 +484,8 @@ Perl_do_openn(pTHX_ GV *gv, register char *name, I32 len, int as_raw,
                *--tend = '\0';
                while (tend > type && isSPACE(tend[-1]))
                    *--tend = '\0';
-               /*SUPPRESS 530*/
-               for (; isSPACE(*type); type++) ;
+               for (; isSPACE(*type); type++)
+                   ;
                name = type;
                len  = tend-type;
            }
@@ -541,8 +534,8 @@ Perl_do_openn(pTHX_ GV *gv, register char *name, I32 len, int as_raw,
                goto unknown_open_mode;
            name = type;
            IoTYPE(io) = IoTYPE_RDONLY;
-           /*SUPPRESS 530*/
-           for (; isSPACE(*name); name++) ;
+           for (; isSPACE(*name); name++)
+               ;
            mode[0] = 'r';
 
 #ifdef HAS_STRLCAT
@@ -780,7 +773,7 @@ Perl_nextargv(pTHX_ register GV *gv)
        STRLEN oldlen;
        sv = av_shift(GvAV(gv));
        SAVEFREESV(sv);
-       sv_setsv(GvSV(gv),sv);
+       sv_setsv(GvSVn(gv),sv);
        SvSETMAGIC(GvSV(gv));
        PL_oldname = SvPVx(GvSV(gv), oldlen);
        if (do_open(gv,PL_oldname,oldlen,PL_inplace!=0,O_RDONLY,0,Nullfp)) {
@@ -852,7 +845,8 @@ Perl_nextargv(pTHX_ register GV *gv)
                    do_close(gv,FALSE);
                    (void)PerlLIO_unlink(SvPVX_const(sv));
                    (void)PerlLIO_rename(PL_oldname,SvPVX_const(sv));
-                   do_open(gv,SvPVX(sv),SvCUR(sv),PL_inplace!=0,O_RDONLY,0,Nullfp);
+                   do_open(gv,(char*)SvPVX_const(sv),SvCUR(sv),PL_inplace!=0,
+                           O_RDONLY,0,Nullfp);
 #endif /* DOSISH */
 #else
                    (void)UNLINK(SvPVX_const(sv));
@@ -888,11 +882,12 @@ Perl_nextargv(pTHX_ register GV *gv)
                sv_catpvn(sv,PL_oldname,oldlen);
                SETERRNO(0,0);          /* in case sprintf set errno */
 #ifdef VMS
-               if (!do_open(PL_argvoutgv,SvPVX(sv),SvCUR(sv),PL_inplace!=0,
-                 O_WRONLY|O_CREAT|O_TRUNC,0,Nullfp))
+               if (!do_open(PL_argvoutgv,(char*)SvPVX_const(sv),SvCUR(sv),
+                            PL_inplace!=0,O_WRONLY|O_CREAT|O_TRUNC,0,Nullfp))
 #else
-               if (!do_open(PL_argvoutgv,SvPVX(sv),SvCUR(sv),PL_inplace!=0,
-                            O_WRONLY|O_CREAT|OPEN_EXCL,0666,Nullfp))
+                   if (!do_open(PL_argvoutgv,(char*)SvPVX_const(sv),SvCUR(sv),
+                            PL_inplace!=0,O_WRONLY|O_CREAT|OPEN_EXCL,0666,
+                            Nullfp))
 #endif
                {
                    if (ckWARN_d(WARN_INPLACE)) 
@@ -1303,19 +1298,6 @@ Perl_do_print(pTHX_ register SV *sv, PerlIO *fp)
     /* assuming fp is checked earlier */
     if (!sv)
        return TRUE;
-    if (PL_ofmt) {
-       if (SvGMAGICAL(sv))
-           mg_get(sv);
-        if (SvIOK(sv) && SvIVX(sv) != 0) {
-           PerlIO_printf(fp, PL_ofmt, (NV)SvIVX(sv));
-           return !PerlIO_error(fp);
-       }
-       if (  (SvNOK(sv) && SvNVX(sv) != 0.0)
-          || (looks_like_number(sv) && sv_2nv(sv) != 0.0) ) {
-           PerlIO_printf(fp, PL_ofmt, SvNVX(sv));
-           return !PerlIO_error(fp);
-       }
-    }
     switch (SvTYPE(sv)) {
     case SVt_NULL:
        if (ckWARN(WARN_UNINITIALIZED))
@@ -1473,12 +1455,12 @@ Perl_do_aexec5(pTHX_ SV *really, register SV **mark, register SV **sp,
 #if defined(MACOS_TRADITIONAL) || defined(SYMBIAN)
     Perl_croak(aTHX_ "exec? I'm not *that* kind of operating system");
 #else
-    register char **a;
-    const char *tmps = Nullch;
-
     if (sp > mark) {
-       New(401,PL_Argv, sp - mark + 1, char*);
+       char **a;
+       const char *tmps = Nullch;
+       Newx(PL_Argv, sp - mark + 1, char*);
        a = PL_Argv;
+
        while (++mark <= sp) {
            if (*mark)
                *a++ = (char*)SvPV_nolen_const(*mark);
@@ -1515,14 +1497,10 @@ Perl_do_aexec5(pTHX_ SV *really, register SV **mark, register SV **sp,
 void
 Perl_do_execfree(pTHX)
 {
-    if (PL_Argv) {
-       Safefree(PL_Argv);
-       PL_Argv = Null(char **);
-    }
-    if (PL_Cmd) {
-       Safefree(PL_Cmd);
-       PL_Cmd = Nullch;
-    }
+    Safefree(PL_Argv);
+    PL_Argv = Null(char **);
+    Safefree(PL_Cmd);
+    PL_Cmd = Nullch;
 }
 
 #if !defined(OS2) && !defined(WIN32) && !defined(DJGPP) && !defined(EPOC) && !defined(SYMBIAN) && !defined(MACOS_TRADITIONAL)
@@ -1627,7 +1605,7 @@ Perl_do_exec3(pTHX_ char *cmd, int fd, int do_report)
        }
     }
 
-    New(402,PL_Argv, (s - cmd) / 2 + 2, char*);
+    Newx(PL_Argv, (s - cmd) / 2 + 2, char*);
     PL_Cmd = savepvn(cmd, s-cmd);
     a = PL_Argv;
     for (s = PL_Cmd; *s;) {
@@ -1671,7 +1649,7 @@ Perl_apply(pTHX_ I32 type, register SV **mark, register SV **sp)
     register I32 tot = 0;
     const char *what;
     const char *s;
-    SV **oldmark = mark;
+    SV ** const oldmark = mark;
 
 #define APPLY_TAINT_PROPER() \
     STMT_START {                                                       \
@@ -1859,7 +1837,7 @@ nothing in the core.
            APPLY_TAINT_PROPER();
            tot = sp - mark;
            while (++mark <= sp) {
-               const char *name = SvPV_nolen_const(*mark);
+               char *name = SvPV_nolen(*mark);
                APPLY_TAINT_PROPER();
                if (PerlLIO_utime(name, utbufp))
                    tot--;
@@ -2002,7 +1980,7 @@ Perl_do_ipcctl(pTHX_ I32 optype, SV **mark, SV **sp)
     const I32 id  = SvIVx(*++mark);
     const I32 n   = (optype == OP_SEMCTL) ? SvIVx(*++mark) : 0;
     const I32 cmd = SvIVx(*++mark);
-    (void)sp;
+    PERL_UNUSED_ARG(sp);
 
     astr = *++mark;
     infosize = 0;
@@ -2056,14 +2034,14 @@ Perl_do_ipcctl(pTHX_ I32 optype, SV **mark, SV **sp)
 
     if (infosize)
     {
-       STRLEN len;
        if (getinfo)
        {
-           SvPV_force(astr, len);
+           SvPV_force_nolen(astr);
            a = SvGROW(astr, infosize+1);
        }
        else
        {
+           STRLEN len;
            a = SvPV(astr, len);
            if (len != infosize)
                Perl_croak(aTHX_ "Bad arg length for %s, is %lu, should be %ld",
@@ -2121,15 +2099,15 @@ Perl_do_msgsnd(pTHX_ SV **mark, SV **sp)
 {
 #ifdef HAS_MSG
     SV *mstr;
-    char *mbuf;
+    const char *mbuf;
     I32 msize, flags;
     STRLEN len;
     const I32 id = SvIVx(*++mark);
-    (void)sp;
+    PERL_UNUSED_ARG(sp);
 
     mstr = *++mark;
     flags = SvIVx(*++mark);
-    mbuf = SvPV(mstr, len);
+    mbuf = SvPV_const(mstr, len);
     if ((msize = len - sizeof(long)) < 0)
        Perl_croak(aTHX_ "Arg too short for msgsnd");
     SETERRNO(0,0);
@@ -2147,9 +2125,8 @@ Perl_do_msgrcv(pTHX_ SV **mark, SV **sp)
     char *mbuf;
     long mtype;
     I32 msize, flags, ret;
-    STRLEN len;
     const I32 id = SvIVx(*++mark);
-    (void)sp;
+    PERL_UNUSED_ARG(sp);
 
     mstr = *++mark;
     /* suppress warning when reading into undef var --jhi */
@@ -2158,7 +2135,7 @@ Perl_do_msgrcv(pTHX_ SV **mark, SV **sp)
     msize = SvIVx(*++mark);
     mtype = (long)SvIVx(*++mark);
     flags = SvIVx(*++mark);
-    SvPV_force(mstr, len);
+    SvPV_force_nolen(mstr);
     mbuf = SvGROW(mstr, sizeof(long)+msize+1);
 
     SETERRNO(0,0);
@@ -2182,13 +2159,13 @@ Perl_do_semop(pTHX_ SV **mark, SV **sp)
 {
 #ifdef HAS_SEM
     SV *opstr;
-    char *opbuf;
+    const char *opbuf;
     STRLEN opsize;
     const I32 id = SvIVx(*++mark);
-    (void)sp;
+    PERL_UNUSED_ARG(sp);
 
     opstr = *++mark;
-    opbuf = SvPV(opstr, opsize);
+    opbuf = SvPV_const(opstr, opsize);
     if (opsize < 3 * SHORTSIZE
        || (opsize % (3 * SHORTSIZE))) {
        SETERRNO(EINVAL,LIB_INVARG);
@@ -2204,7 +2181,7 @@ Perl_do_semop(pTHX_ SV **mark, SV **sp)
         struct sembuf *temps, *t;
         I32 result;
 
-        New (0, temps, nsops, struct sembuf);
+        Newx (temps, nsops, struct sembuf);
         t = temps;
         while (i--) {
             t->sem_num = *o++;
@@ -2237,10 +2214,9 @@ Perl_do_shmio(pTHX_ I32 optype, SV **mark, SV **sp)
     SV *mstr;
     char *shm;
     I32 mpos, msize;
-    STRLEN len;
     struct shmid_ds shmds;
     const I32 id = SvIVx(*++mark);
-    (void)sp;
+    PERL_UNUSED_ARG(sp);
 
     mstr = *++mark;
     mpos = SvIVx(*++mark);
@@ -2260,7 +2236,7 @@ Perl_do_shmio(pTHX_ I32 optype, SV **mark, SV **sp)
        /* suppress warning when reading into undef var (tchrist 3/Mar/00) */
        if (! SvOK(mstr))
            sv_setpvn(mstr, "", 0);
-       SvPV_force(mstr, len);
+       SvPV_force_nolen(mstr);
        mbuf = SvGROW(mstr, msize+1);
 
        Copy(shm + mpos, mbuf, msize, char);
@@ -2274,8 +2250,9 @@ Perl_do_shmio(pTHX_ I32 optype, SV **mark, SV **sp)
     }
     else {
        I32 n;
+       STRLEN len;
 
-       const char *mbuf = SvPV(mstr, len);
+       const char *mbuf = SvPV_const(mstr, len);
        if ((n = len) > msize)
            n = msize;
        Copy(mbuf, shm + mpos, n, char);
@@ -2320,7 +2297,8 @@ Perl_start_glob (pTHX_ SV *tmpglob, IO *io)
 #include <rmsdef.h>
        char rslt[NAM$C_MAXRSS+1+sizeof(unsigned short int)] = {'\0','\0'};
        char vmsspec[NAM$C_MAXRSS+1];
-       char *rstr = rslt + sizeof(unsigned short int), *begin, *end, *cp;
+       char * const rstr = rslt + sizeof(unsigned short int);
+       char *begin, *end, *cp;
        $DESCRIPTOR(dfltdsc,"SYS$DISK:[]*.*;");
        PerlIO *tmpfp;
        STRLEN i;
@@ -2433,7 +2411,7 @@ Perl_start_glob (pTHX_ SV *tmpglob, IO *io)
 #endif /* !CSH */
 #endif /* !DOSISH */
 #endif /* MACOS_TRADITIONAL */
-    (void)do_open(PL_last_in_gv, SvPVX(tmpcmd), SvCUR(tmpcmd),
+    (void)do_open(PL_last_in_gv, (char*)SvPVX_const(tmpcmd), SvCUR(tmpcmd),
                  FALSE, O_RDONLY, 0, Nullfp);
     fp = IoIFP(io);
 #endif /* !VMS */