On OS X to use perl's malloc need to USE_PERL_SBRK and emulate sbrk()
[p5sagit/p5-mst-13.2.git] / doio.c
diff --git a/doio.c b/doio.c
index 79ca1fd..a2300fc 100644 (file)
--- a/doio.c
+++ b/doio.c
@@ -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
@@ -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))
@@ -1859,7 +1841,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--;
@@ -2056,14 +2038,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,7 +2103,7 @@ 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);
@@ -2129,7 +2111,7 @@ Perl_do_msgsnd(pTHX_ SV **mark, SV **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,7 +2129,6 @@ 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;
 
@@ -2158,7 +2139,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 +2163,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;
 
     opstr = *++mark;
-    opbuf = SvPV(opstr, opsize);
+    opbuf = SvPV_const(opstr, opsize);
     if (opsize < 3 * SHORTSIZE
        || (opsize % (3 * SHORTSIZE))) {
        SETERRNO(EINVAL,LIB_INVARG);
@@ -2237,7 +2218,6 @@ 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;
@@ -2260,7 +2240,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 +2254,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);
@@ -2433,7 +2414,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 */