Untangle the IV_IS_QUAD jungle by introduding
Jarkko Hietaniemi [Sat, 2 Oct 1999 23:05:50 +0000 (23:05 +0000)]
macros to be used when doing formatted printing:
IVdf, UVuf, UVxf, UVof.  Also introduce Uid_t_SIGN.

p4raw-id: //depot/cfgperl@4288

13 files changed:
Configure
config_h.SH
doio.c
dump.c
op.c
perl.h
pp_hot.c
pp_sys.c
regcomp.c
sv.c
taint.c
toke.c
util.c

index a6d567c..9351a57 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -20,7 +20,7 @@
 
 # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
 #
-# Generated on Sat Oct  2 13:06:57 EET DST 1999 [metaconfig 3.0 PL70]
+# Generated on Sat Oct  2 15:53:32 EET DST 1999 [metaconfig 3.0 PL70]
 # (with additional metaconfig patches by perlbug@perl.com)
 
 cat >/tmp/c1$$ <<EOF
@@ -814,6 +814,7 @@ stdio_stream_array=''
 d_strtoull=''
 sysman=''
 trnl=''
+uidsign=''
 uidtype=''
 archname64=''
 use64bits=''
@@ -11412,7 +11413,7 @@ if eval $compile_ok; then
                echo "You have EBCDIC." >&4
                val="$define"
        else
-               echo "Nope, no EBCDIC.  Assuming ASCII or some ISO Latin, or UTF." >&4
+               echo "Nope, no EBCDIC, probably ASCII or some ISO Latin." >&4
        fi
 else
        echo "I'm unable to compile the test program." >&4
@@ -12518,6 +12519,42 @@ uid_t) echo "uid_t found." ;;
        ;;
 esac
 
+echo " "
+case "$uidtype" in
+*_t) zzz="$uidtype"    ;;
+*)   zzz="uid"         ;;
+esac
+echo "Checking the sign of $zzz..." >&4
+cat > try.c <<EOCP
+#include <sys/types.h>
+#include <stdio.h>
+int main() {
+       $uidtype foo = -1;
+       if (foo < 0)
+               printf("-1\n");
+       else
+               printf("1\n");
+}
+EOCP
+if eval $compile; then
+       yyy=`./try`
+       case "$yyy" in
+       '')     uidsign=1
+               echo "(I can't execute the test program--guessing unsigned.)" >&4
+               ;;
+       *)      uidsign=$yyy
+               case "$uidsign" in
+                1) echo "Your $zzz is unsigned." ;;
+               -1) echo "Your $zzz is signed."   ;;
+               esac
+               ;;
+       esac
+else
+       uidsign=1
+       echo "(I can't compile the test program--guessing unsigned.)" >&4
+fi
+
+
 : see if dbm.h is available
 : see if dbmclose exists
 set dbmclose d_dbmclose
@@ -14006,6 +14043,7 @@ touch='$touch'
 tr='$tr'
 trnl='$trnl'
 troff='$troff'
+uidsign='$uidsign'
 uidtype='$uidtype'
 uname='$uname'
 uniq='$uniq'
index c720e83..3aa55fd 100644 (file)
@@ -2735,6 +2735,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #define Size_t $sizetype        /* length paramater for string functions */
 
+/* Uid_t_SIGN:
+ *     This symbol holds the signedess of a Uid_t.
+ *     1 for unsigned, -1 for signed.
+ */
+#define Uid_t_SIGN     $uidsign                /* UID sign */
+
 /* Uid_t:
  *     This symbol holds the type used to declare user ids in the kernel.
  *     It can be int, ushort, uid_t, etc... It may be necessary to include
diff --git a/doio.c b/doio.c
index 2baecec..ccbdcad 100644 (file)
--- a/doio.c
+++ b/doio.c
@@ -1013,17 +1013,10 @@ Perl_do_print(pTHX_ register SV *sv, PerlIO *fp)
        if (SvIOK(sv)) {
            if (SvGMAGICAL(sv))
                mg_get(sv);
-#ifdef IV_IS_QUAD
            if (SvIsUV(sv))
-               PerlIO_printf(fp, "%" PERL_PRIu64, (UV)SvUVX(sv));
+               PerlIO_printf(fp, "%"UVuf, (UV)SvUVX(sv));
            else
-               PerlIO_printf(fp, "%" PERL_PRId64, (IV)SvIVX(sv));
-#else
-           if (SvIsUV(sv))
-               PerlIO_printf(fp, "%lu", (unsigned long)SvUVX(sv));
-           else
-               PerlIO_printf(fp, "%ld", (long)SvIVX(sv));
-#endif
+               PerlIO_printf(fp, "%"IVdf, (IV)SvIVX(sv));
            return !PerlIO_error(fp);
        }
        /* FALL THROUGH */
diff --git a/dump.c b/dump.c
index 7f1dba4..b64248a 100644 (file)
--- a/dump.c
+++ b/dump.c
@@ -283,18 +283,11 @@ Perl_sv_peek(pTHX_ SV *sv)
        Perl_sv_catpvf(aTHX_ t, "(%g)",SvNVX(sv));
        RESTORE_NUMERIC_LOCAL();
     }
-    else if (SvIOKp(sv)) {             /* XXXX: IV, UV? */
-#ifdef IV_IS_QUAD
+    else if (SvIOKp(sv)) {
        if (SvIsUV(sv))
-           Perl_sv_catpvf(aTHX_ t, "(%" PERL_PRIu64 ")",(UV)SvUVX(sv));
+           Perl_sv_catpvf(aTHX_ t, "(%"UVuf")", (UV)SvUVX(sv));
        else
-            Perl_sv_catpvf(aTHX_ t, "(%" PERL_PRId64 ")",(IV)SvIVX(sv));
-#else
-       if (SvIsUV(sv))
-           Perl_sv_catpvf(aTHX_ t, "(%lu)",(unsigned long)SvUVX(sv));
-       else
-            Perl_sv_catpvf(aTHX_ t, "(%ld)",(long)SvIVX(sv));
-#endif
+            Perl_sv_catpvf(aTHX_ t, "(%"IVdf")", (IV)SvIVX(sv));
     }
     else
        sv_catpv(t, "()");
@@ -400,11 +393,7 @@ Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, OP *o)
            Perl_dump_indent(aTHX_ level, file, "TARG = %d\n", o->op_targ);
     }
 #ifdef DUMPADDR
-#ifdef IV_IS_QUAD
-    Perl_dump_indent(aTHX_ level, file, "ADDR = 0x%" PERL_PRIx64 " => 0x%" PERL_PRIx64 "\n", (IV)o, (IV)o->op_next);
-#else
-    Perl_dump_indent(aTHX_ level, file, "ADDR = 0x%lx => 0x%lx\n", (long)o, (long)o->op_next);
-#endif
+    Perl_dump_indent(aTHX_ level, file, "ADDR = 0x%"UVxf" => 0x%"UVxf"\n", (UV)o, (UV)o->op_next);
 #endif
     if (o->op_flags) {
        SV *tmpsv = newSVpvn("", 0);
@@ -765,19 +754,11 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
     flags = SvFLAGS(sv);
     type = SvTYPE(sv);
 
-#ifdef IV_IS_QUAD
     Perl_sv_setpvf(aTHX_ d,
-                  "(0x%" PERL_PRIx64") at 0x%" PERL_PRIx64 "\n%*s  REFCNT = %" PERL_PRId64 "\n%*s  FLAGS = (",
+                  "(0x%"UVxf") at 0x%"UVxf"\n%*s  REFCNT = %"IVdf"\n%*s  FLAGS = (",
                   PTR2UV(SvANY(sv)), PTR2UV(sv),
                   PL_dumpindent*level, "", (IV)SvREFCNT(sv),
                   PL_dumpindent*level, "");
-#else
-    Perl_sv_setpvf(aTHX_ d,
-                  "(0x%lx) at 0x%lx\n%*s  REFCNT = %ld\n%*s  FLAGS = (",
-                  (unsigned long)SvANY(sv), (unsigned long)sv,
-                  PL_dumpindent*level, "", (long)SvREFCNT(sv),
-                  PL_dumpindent*level, "");
-#endif
 
     if (flags & SVs_PADBUSY)   sv_catpv(d, "PADBUSY,");
     if (flags & SVs_PADTMP)    sv_catpv(d, "PADTMP,");
@@ -907,23 +888,17 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
        return;
     }
     if (type >= SVt_PVIV || type == SVt_IV) {
-#ifdef IV_IS_QUAD
        if (SvIsUV(sv))
-           Perl_dump_indent(aTHX_ level, file, "  UV = %" PERL_PRIu64, (UV)SvUVX(sv));
+           Perl_dump_indent(aTHX_ level, file, "  UV = %"UVuf, (UV)SvUVX(sv));
        else
-           Perl_dump_indent(aTHX_ level, file, "  IV = %" PERL_PRId64, (IV)SvIVX(sv));
-#else
-       if (SvIsUV(sv))
-           Perl_dump_indent(aTHX_ level, file, "  UV = %lu", (unsigned long)SvUVX(sv));
-       else
-           Perl_dump_indent(aTHX_ level, file, "  IV = %ld", (long)SvIVX(sv));
-#endif
+           Perl_dump_indent(aTHX_ level, file, "  IV = %"IVdf, (IV)SvIVX(sv));
        if (SvOOK(sv))
            PerlIO_printf(file, "  (OFFSET)");
        PerlIO_putc(file, '\n');
     }
     if (type >= SVt_PVNV || type == SVt_NV) {
        RESTORE_NUMERIC_STANDARD();
+       /* %Vg doesn't work? --jhi */
 #ifdef USE_LONG_DOUBLE
        Perl_dump_indent(aTHX_ level, file, "  NV = %.*" PERL_PRIgldbl "\n", LDBL_DIG, SvNVX(sv));
 #else
@@ -932,11 +907,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
        RESTORE_NUMERIC_LOCAL();
     }
     if (SvROK(sv)) {
-#ifdef IV_IS_QUAD
-       Perl_dump_indent(aTHX_ level, file, "  RV = 0x%" PERL_PRIx64 "\n", PTR2IV(SvRV(sv)));
-#else
-       Perl_dump_indent(aTHX_ level, file, "  RV = 0x%lx\n", (long)SvRV(sv));
-#endif
+       Perl_dump_indent(aTHX_ level, file, "  RV = 0x%"UVxf"\n", PTR2UV(SvRV(sv)));
        if (nest < maxnest)
            do_sv_dump(level+1, file, SvRV(sv), nest+1, maxnest, dumpops, pvlim);
        return;
@@ -945,21 +916,12 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
        return;
     if (type <= SVt_PVLV) {
        if (SvPVX(sv)) {
-#ifdef IV_IS_QUAD
-           Perl_dump_indent(aTHX_ level, file,"  PV = 0x%" PERL_PRIx64 " ", PTR2IV(SvPVX(sv)));
-#else
-           Perl_dump_indent(aTHX_ level, file,"  PV = 0x%lx ", (long)SvPVX(sv));
-#endif
+           Perl_dump_indent(aTHX_ level, file,"  PV = 0x%"UVxf" ", PTR2UV(SvPVX(sv)));
            if (SvOOK(sv))
                PerlIO_printf(file, "( %s . ) ", pv_display(d, SvPVX(sv)-SvIVX(sv), SvIVX(sv), 0, pvlim));
            PerlIO_printf(file, "%s\n", pv_display(d, SvPVX(sv), SvCUR(sv), SvLEN(sv), pvlim));
-#ifdef IV_IS_QUAD
-           Perl_dump_indent(aTHX_ level, file, "  CUR = %" PERL_PRId64 "\n", (IV)SvCUR(sv));
-           Perl_dump_indent(aTHX_ level, file, "  LEN = %" PERL_PRId64 "\n", (IV)SvLEN(sv));
-#else
-           Perl_dump_indent(aTHX_ level, file, "  CUR = %ld\n", (long)SvCUR(sv));
-           Perl_dump_indent(aTHX_ level, file, "  LEN = %ld\n", (long)SvLEN(sv));
-#endif
+           Perl_dump_indent(aTHX_ level, file, "  CUR = %"IVdf"\n", (IV)SvCUR(sv));
+           Perl_dump_indent(aTHX_ level, file, "  LEN = %"IVdf"\n", (IV)SvLEN(sv));
        }
        else
            Perl_dump_indent(aTHX_ level, file, "  PV = 0\n");
@@ -973,43 +935,23 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
     switch (type) {
     case SVt_PVLV:
        Perl_dump_indent(aTHX_ level, file, "  TYPE = %c\n", LvTYPE(sv));
-#ifdef IV_IS_QUAD
-       Perl_dump_indent(aTHX_ level, file, "  TARGOFF = %" PERL_PRId64 "\n", (IV)LvTARGOFF(sv));
-       Perl_dump_indent(aTHX_ level, file, "  TARGLEN = %" PERL_PRId64 "\n", (IV)LvTARGLEN(sv));
-       Perl_dump_indent(aTHX_ level, file, "  TARG = 0x%" PERL_PRIx64 "\n", PTR2IV(LvTARG(sv)));
-#else
-       Perl_dump_indent(aTHX_ level, file, "  TARGOFF = %ld\n", (long)LvTARGOFF(sv));
-       Perl_dump_indent(aTHX_ level, file, "  TARGLEN = %ld\n", (long)LvTARGLEN(sv));
-       Perl_dump_indent(aTHX_ level, file, "  TARG = 0x%lx\n", (long)LvTARG(sv));
-#endif
+       Perl_dump_indent(aTHX_ level, file, "  TARGOFF = %"IVdf"\n", (IV)LvTARGOFF(sv));
+       Perl_dump_indent(aTHX_ level, file, "  TARGLEN = %"IVdf"\n", (IV)LvTARGLEN(sv));
+       Perl_dump_indent(aTHX_ level, file, "  TARG = 0x%"UVxf"\n", PTR2UV(LvTARG(sv)));
        /* XXX level+1 ??? */
        do_sv_dump(level, file, LvTARG(sv), nest+1, maxnest, dumpops, pvlim);
        break;
     case SVt_PVAV:
-#ifdef IV_IS_QUAD
-       Perl_dump_indent(aTHX_ level, file, "  ARRAY = 0x%" PERL_PRIx64 , PTR2IV(AvARRAY(sv)));
-#else
-       Perl_dump_indent(aTHX_ level, file, "  ARRAY = 0x%lx", (long)AvARRAY(sv));
-#endif
+       Perl_dump_indent(aTHX_ level, file, "  ARRAY = 0x%"UVxf, PTR2UV(AvARRAY(sv)));
        if (AvARRAY(sv) != AvALLOC(sv)) {
-           PerlIO_printf(file, " (offset=%d)\n", (AvARRAY(sv) - AvALLOC(sv)));
-#ifdef IV_IS_QUAD
-           Perl_dump_indent(aTHX_ level, file, "  ALLOC = 0x%" PERL_PRIx64 "\n", PTR2IV(AvALLOC(sv)));
-#else
-           Perl_dump_indent(aTHX_ level, file, "  ALLOC = 0x%lx\n", (long)AvALLOC(sv));
-#endif
+           PerlIO_printf(file, " (offset=%"IVdf")\n", (IV)(AvARRAY(sv) - AvALLOC(sv)));
+           Perl_dump_indent(aTHX_ level, file, "  ALLOC = 0x%"UVxf"\n", PTR2UV(AvALLOC(sv)));
        }
        else
            PerlIO_putc(file, '\n');
-#ifdef IV_IS_QUAD
-       Perl_dump_indent(aTHX_ level, file, "  FILL = %" PERL_PRId64 "\n", (IV)AvFILLp(sv));
-       Perl_dump_indent(aTHX_ level, file, "  MAX = %" PERL_PRId64 "\n", (IV)AvMAX(sv));
-       Perl_dump_indent(aTHX_ level, file, "  ARYLEN = 0x%" PERL_PRIx64 "\n", PTR2IV(AvARYLEN(sv)));
-#else
-       Perl_dump_indent(aTHX_ level, file, "  FILL = %ld\n", (long)AvFILLp(sv));
-       Perl_dump_indent(aTHX_ level, file, "  MAX = %ld\n", (long)AvMAX(sv));
-       Perl_dump_indent(aTHX_ level, file, "  ARYLEN = 0x%lx\n", (long)AvARYLEN(sv));
-#endif
+       Perl_dump_indent(aTHX_ level, file, "  FILL = %"IVdf"\n", (IV)AvFILLp(sv));
+       Perl_dump_indent(aTHX_ level, file, "  MAX = %"IVdf"\n", (IV)AvMAX(sv));
+       Perl_dump_indent(aTHX_ level, file, "  ARYLEN = 0x%"UVxf"\n", PTR2UV(AvARYLEN(sv)));
        flags = AvFLAGS(sv);
        sv_setpv(d, "");
        if (flags & AVf_REAL)   sv_catpv(d, ",REAL");
@@ -1021,22 +963,14 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
            for (count = 0; count <=  av_len((AV*)sv) && count < maxnest; count++) {
                SV** elt = av_fetch((AV*)sv,count,0);
 
-#ifdef IV_IS_QUAD
-               Perl_dump_indent(aTHX_ level + 1, file, "Elt No. %" PERL_PRId64 "\n", (IV)count);
-#else
-               Perl_dump_indent(aTHX_ level + 1, file, "Elt No. %ld\n", (long)count);
-#endif
+               Perl_dump_indent(aTHX_ level + 1, file, "Elt No. %"IVdf"\n", (IV)count);
                if (elt) 
                    do_sv_dump(level+1, file, *elt, nest+1, maxnest, dumpops, pvlim);
            }
        }
        break;
     case SVt_PVHV:
-#ifdef IV_IS_QUAD
-       Perl_dump_indent(aTHX_ level, file, "  ARRAY = 0x%" PERL_PRIx64,PTR2IV(HvARRAY(sv)));
-#else
-       Perl_dump_indent(aTHX_ level, file, "  ARRAY = 0x%lx",(long)HvARRAY(sv));
-#endif
+       Perl_dump_indent(aTHX_ level, file, "  ARRAY = 0x%"UVxf, PTR2UV(HvARRAY(sv)));
        if (HvARRAY(sv) && HvKEYS(sv)) {
            /* Show distribution of HEs in the ARRAY */
            int freq[200];
@@ -1081,25 +1015,13 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
            Perl_dump_indent(aTHX_ level, file, "  hash quality = %.1f%%", theoret/sum*100);
        }
        PerlIO_putc(file, '\n');
-#ifdef IV_IS_QUAD
-       Perl_dump_indent(aTHX_ level, file, "  KEYS = %" PERL_PRId64 "\n", (IV)HvKEYS(sv));
-       Perl_dump_indent(aTHX_ level, file, "  FILL = %" PERL_PRId64 "\n", (IV)HvFILL(sv));
-       Perl_dump_indent(aTHX_ level, file, "  MAX = %" PERL_PRId64 "\n", (IV)HvMAX(sv));
-       Perl_dump_indent(aTHX_ level, file, "  RITER = %" PERL_PRId64 "\n", (IV)HvRITER(sv));
-       Perl_dump_indent(aTHX_ level, file, "  EITER = 0x%" PERL_PRIx64 "\n",PTR2IV(HvEITER(sv)));
-#else
-       Perl_dump_indent(aTHX_ level, file, "  KEYS = %ld\n", (long)HvKEYS(sv));
-       Perl_dump_indent(aTHX_ level, file, "  FILL = %ld\n", (long)HvFILL(sv));
-       Perl_dump_indent(aTHX_ level, file, "  MAX = %ld\n", (long)HvMAX(sv));
-       Perl_dump_indent(aTHX_ level, file, "  RITER = %ld\n", (long)HvRITER(sv));
-       Perl_dump_indent(aTHX_ level, file, "  EITER = 0x%lx\n",(long) HvEITER(sv));
-#endif
+       Perl_dump_indent(aTHX_ level, file, "  KEYS = %"IVdf"\n", (IV)HvKEYS(sv));
+       Perl_dump_indent(aTHX_ level, file, "  FILL = %"IVdf"\n", (IV)HvFILL(sv));
+       Perl_dump_indent(aTHX_ level, file, "  MAX = %"IVdf"\n", (IV)HvMAX(sv));
+       Perl_dump_indent(aTHX_ level, file, "  RITER = %"IVdf"\n", (IV)HvRITER(sv));
+       Perl_dump_indent(aTHX_ level, file, "  EITER = 0x%"UVxf"\n", PTR2UV(HvEITER(sv)));
        if (HvPMROOT(sv))
-#ifdef IV_IS_QUAD
-           Perl_dump_indent(aTHX_ level, file, "  PMROOT = 0x%" PERL_PRIx64 "\n",PTR2IV(HvPMROOT(sv)));
-#else
-           Perl_dump_indent(aTHX_ level, file, "  PMROOT = 0x%lx\n",(long)HvPMROOT(sv));
-#endif
+           Perl_dump_indent(aTHX_ level, file, "  PMROOT = 0x%"UVxf"\n", PTR2UV(HvPMROOT(sv)));
        if (HvNAME(sv))
            Perl_dump_indent(aTHX_ level, file, "  NAME = \"%s\"\n", HvNAME(sv));
        if (nest < maxnest && !HvEITER(sv)) { /* Try to preserve iterator */
@@ -1116,11 +1038,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
 
                key = hv_iterkey(he, &len);
                elt = hv_iterval(hv, he);
-#ifdef IV_IS_QUAD
-               Perl_dump_indent(aTHX_ level+1, file, "Elt %s HASH = 0x%" PERL_PRIx64 "\n", pv_display(d, key, len, 0, pvlim), hash);
-#else
-               Perl_dump_indent(aTHX_ level+1, file, "Elt %s HASH = 0x%lx\n", pv_display(d, key, len, 0, pvlim), hash);
-#endif
+               Perl_dump_indent(aTHX_ level+1, file, "Elt %s HASH = 0x%"UVxf"\n", pv_display(d, key, len, 0, pvlim), (UV)hash);
                do_sv_dump(level+1, file, elt, nest+1, maxnest, dumpops, pvlim);
            }
            hv_iterinit(hv);            /* Return to status quo */
@@ -1133,54 +1051,23 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
     case SVt_PVFM:
        do_hv_dump(level, file, "  COMP_STASH", CvSTASH(sv));
        if (CvSTART(sv))
-#ifdef IV_IS_QAUD
-           Perl_dump_indent(aTHX_ level, file, "  START = 0x%" PERL_PRIx64 " ===> %d\n", (IV)CvSTART(sv), CvSTART(sv)->op_seq);
-       Perl_dump_indent(aTHX_ level, file, "  ROOT = 0x%" PERL_PRIx64 "\n", (IV)CvROOT(sv));
-#else
-           Perl_dump_indent(aTHX_ level, file, "  START = 0x%lx ===> %d\n", (long)CvSTART(sv), CvSTART(sv)->op_seq);
-       Perl_dump_indent(aTHX_ level, file, "  ROOT = 0x%lx\n", (long)CvROOT(sv));
-#endif
+           Perl_dump_indent(aTHX_ level, file, "  START = 0x%"UVxf" ===> %"IVdf"\n", PTR2UV(CvSTART(sv)), (IV)CvSTART(sv)->op_seq);
+       Perl_dump_indent(aTHX_ level, file, "  ROOT = 0x%"UVxf"\n", PTR2UV(CvROOT(sv)));
         if (CvROOT(sv) && dumpops)
            do_op_dump(level+1, file, CvROOT(sv));
-#ifdef IV_IS_QUAD
-       Perl_dump_indent(aTHX_ level, file, "  XSUB = 0x%" PERL_PRIx64 "\n", PTR2IV(CvXSUB(sv)));
-       Perl_dump_indent(aTHX_ level, file, "  XSUBANY = %" PERL_PRId64 "\n", (IV)CvXSUBANY(sv).any_i32);
-#else
-       Perl_dump_indent(aTHX_ level, file, "  XSUB = 0x%lx\n", (long)CvXSUB(sv));
-       Perl_dump_indent(aTHX_ level, file, "  XSUBANY = %ld\n", (long)CvXSUBANY(sv).any_i32);
-#endif
+       Perl_dump_indent(aTHX_ level, file, "  XSUB = 0x%"UVxf"\n", PTR2UV(CvXSUB(sv)));
+       Perl_dump_indent(aTHX_ level, file, "  XSUBANY = %"IVdf"\n", (IV)CvXSUBANY(sv).any_i32);
        do_gvgv_dump(level, file, "  GVGV::GV", CvGV(sv));
        do_gv_dump(level, file, "  FILEGV", CvFILEGV(sv));
-#ifdef IV_IS_QUAD
-       Perl_dump_indent(aTHX_ level, file, "  DEPTH = %" PERL_PRId64 "\n", (IV)CvDEPTH(sv));
-#else
-       Perl_dump_indent(aTHX_ level, file, "  DEPTH = %ld\n", (long)CvDEPTH(sv));
-#endif
+       Perl_dump_indent(aTHX_ level, file, "  DEPTH = %"IVdf"\n", (IV)CvDEPTH(sv));
 #ifdef USE_THREADS
-#ifdef IV_IS_QUAD
-       Perl_dump_indent(aTHX_ level, file, "  MUTEXP = 0x%" PERL_PRIx64 "\n", (IV)CvMUTEXP(sv));
-       Perl_dump_indent(aTHX_ level, file, "  OWNER = 0x%" PERL_PRIx64 "\n", (IV)CvOWNER(sv));
-#else
-       Perl_dump_indent(aTHX_ level, file, "  MUTEXP = 0x%lx\n", (long)CvMUTEXP(sv));
-       Perl_dump_indent(aTHX_ level, file, "  OWNER = 0x%lx\n", (long)CvOWNER(sv));
-#endif /* IV_IS_QUAD */
+       Perl_dump_indent(aTHX_ level, file, "  MUTEXP = 0x%"UVxf"\n", PTR2UV(CvMUTEXP(sv));
+       Perl_dump_indent(aTHX_ level, file, "  OWNER = 0x%"UVxf"\n",  PTR2UV(CvOWNER(sv));
 #endif /* USE_THREADS */
-#ifdef IV_IS_QUAD
-       Perl_dump_indent(aTHX_ level, file, "  FLAGS = 0x%" PERL_PRIx64 "\n", (UV)CvFLAGS(sv));
-#else
-       Perl_dump_indent(aTHX_ level, file, "  FLAGS = 0x%lx\n", (unsigned long)CvFLAGS(sv));
-#endif
+       Perl_dump_indent(aTHX_ level, file, "  FLAGS = 0x%"UVxf"\n", CvFLAGS(sv));
        if (type == SVt_PVFM)
-#ifdef IV_IS_QUAD
-           Perl_dump_indent(aTHX_ level, file, "  LINES = %" PERL_PRId64 "\n", (IV)FmLINES(sv));
-#else
-           Perl_dump_indent(aTHX_ level, file, "  LINES = %ld\n", (long)FmLINES(sv));
-#endif
-#ifdef IV_IS_QUAD
-       Perl_dump_indent(aTHX_ level, file, "  PADLIST = 0x%" PERL_PRIx64 "\n", PTR2IV(CvPADLIST(sv)));
-#else
-       Perl_dump_indent(aTHX_ level, file, "  PADLIST = 0x%lx\n", (long)CvPADLIST(sv));
-#endif
+           Perl_dump_indent(aTHX_ level, file, "  LINES = %"IVdf"\n", (IV)FmLINES(sv));
+       Perl_dump_indent(aTHX_ level, file, "  PADLIST = 0x%"UVxf"\n", PTR2UV(CvPADLIST(sv)));
        if (nest < maxnest && CvPADLIST(sv)) {
            AV* padlist = CvPADLIST(sv);
            AV* pad_name = (AV*)*av_fetch(padlist, 0, FALSE);
@@ -1190,107 +1077,58 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
            I32 ix;
 
            for (ix = 1; ix <= AvFILL(pad_name); ix++) {
-#ifdef IV_IS_QUAD
                if (SvPOK(pname[ix]))
-                   Perl_dump_indent(aTHX_ level, /* %5d below is enough whitespace. */
+                   Perl_dump_indent(aTHX_ level,
+                               /* %5d below is enough whitespace. */
                                file, 
-                               "%5d. 0x%" PERL_PRIx64 " (%s\"%s\" %" PERL_PRId64 "-%" PERL_PRId64 ")\n",
-                               ix, ppad[ix],
+                               "%5d. 0x%"UVxf" (%s\"%s\" %"IVdf"-%"IVdf")\n",
+                               ix, PTR2UV(ppad[ix]),
                                SvFAKE(pname[ix]) ? "FAKE " : "",
                                SvPVX(pname[ix]),
                                (IV)SvNVX(pname[ix]),
                                (IV)SvIVX(pname[ix]));
-#else
-               if (SvPOK(pname[ix]))
-                   Perl_dump_indent(aTHX_ level, /* %5d below is enough whitespace. */
-                               file, 
-                               "%5d. 0x%lx (%s\"%s\" %ld-%ld)\n",
-                               ix, ppad[ix],
-                               SvFAKE(pname[ix]) ? "FAKE " : "",
-                               SvPVX(pname[ix]),
-                               (long)I_32(SvNVX(pname[ix])),
-                               (long)SvIVX(pname[ix]));
-#endif
            }
        }
        {
            CV *outside = CvOUTSIDE(sv);
-#ifdef IV_IS_QUAD
-           Perl_dump_indent(aTHX_ level, file, "  OUTSIDE = 0x%" PERL_PRIx64 " (%s)\n", 
-                       PTR2IV(outside), 
+           Perl_dump_indent(aTHX_ level, file, "  OUTSIDE = 0x%"UVxf" (%s)\n", 
+                       PTR2UV(outside),
                        (!outside ? "null"
                         : CvANON(outside) ? "ANON"
                         : (outside == PL_main_cv) ? "MAIN"
                         : CvUNIQUE(outside) ? "UNIQUE"
                         : CvGV(outside) ? GvNAME(CvGV(outside)) : "UNDEFINED"));
-#else
-           Perl_dump_indent(aTHX_ level, file, "  OUTSIDE = 0x%lx (%s)\n", 
-                       (long)outside, 
-                       (!outside ? "null"
-                        : CvANON(outside) ? "ANON"
-                        : (outside == PL_main_cv) ? "MAIN"
-                        : CvUNIQUE(outside) ? "UNIQUE"
-                        : CvGV(outside) ? GvNAME(CvGV(outside)) : "UNDEFINED"));
-#endif
        }
        if (nest < maxnest && (CvCLONE(sv) || CvCLONED(sv)))
            do_sv_dump(level+1, file, (SV*)CvOUTSIDE(sv), nest+1, maxnest, dumpops, pvlim);
        break;
     case SVt_PVGV:
        Perl_dump_indent(aTHX_ level, file, "  NAME = \"%s\"\n", GvNAME(sv));
-#ifdef IV_IS_QUAD
-       Perl_dump_indent(aTHX_ level, file, "  NAMELEN = %" PERL_PRId64 "\n", (IV)GvNAMELEN(sv));
-#else
-       Perl_dump_indent(aTHX_ level, file, "  NAMELEN = %ld\n", (long)GvNAMELEN(sv));
-#endif
+       Perl_dump_indent(aTHX_ level, file, "  NAMELEN = %"IVdf"\n", (IV)GvNAMELEN(sv));
        do_hv_dump (level, file, "  GvSTASH", GvSTASH(sv));
-#ifdef IV_IS_QUAD
-       Perl_dump_indent(aTHX_ level, file, "  GP = 0x%" PERL_PRIx64 "\n", PTR2IV(GvGP(sv)));
-       Perl_dump_indent(aTHX_ level, file, "    SV = 0x%" PERL_PRIx64 "\n", PTR2IV(GvSV(sv)));
-       Perl_dump_indent(aTHX_ level, file, "    REFCNT = %" PERL_PRId64 "\n", (IV)GvREFCNT(sv));
-       Perl_dump_indent(aTHX_ level, file, "    IO = 0x%" PERL_PRIx64 "\n", PTR2IV(GvIOp(sv)));
-       Perl_dump_indent(aTHX_ level, file, "    FORM = 0x%" PERL_PRIx64 "  \n", PTR2IV(GvFORM(sv)));
-       Perl_dump_indent(aTHX_ level, file, "    AV = 0x%" PERL_PRIx64 "\n", PTR2IV(GvAV(sv)));
-       Perl_dump_indent(aTHX_ level, file, "    HV = 0x%" PERL_PRIx64 "\n", PTR2IV(GvHV(sv)));
-       Perl_dump_indent(aTHX_ level, file, "    CV = 0x%" PERL_PRIx64 "\n", PTR2IV(GvCV(sv)));
-       Perl_dump_indent(aTHX_ level, file, "    CVGEN = 0x%" PERL_PRIx64 "\n", (IV)GvCVGEN(sv));
-       Perl_dump_indent(aTHX_ level, file, "    LASTEXPR = %" PERL_PRId64 "\n", (IV)GvLASTEXPR(sv));
-       Perl_dump_indent(aTHX_ level, file, "    LINE = %" PERL_PRId64 "\n", (IV)GvLINE(sv));
-#else
-       Perl_dump_indent(aTHX_ level, file, "  GP = 0x%lx\n", (long)GvGP(sv));
-       Perl_dump_indent(aTHX_ level, file, "    SV = 0x%lx\n", (long)GvSV(sv));
-       Perl_dump_indent(aTHX_ level, file, "    REFCNT = %ld\n", (long)GvREFCNT(sv));
-       Perl_dump_indent(aTHX_ level, file, "    IO = 0x%lx\n", (long)GvIOp(sv));
-       Perl_dump_indent(aTHX_ level, file, "    FORM = 0x%lx\n", (long)GvFORM(sv));
-       Perl_dump_indent(aTHX_ level, file, "    AV = 0x%lx\n", (long)GvAV(sv));
-       Perl_dump_indent(aTHX_ level, file, "    HV = 0x%lx\n", (long)GvHV(sv));
-       Perl_dump_indent(aTHX_ level, file, "    CV = 0x%lx\n", (long)GvCV(sv));
-       Perl_dump_indent(aTHX_ level, file, "    CVGEN = 0x%lx\n", (long)GvCVGEN(sv));
-       Perl_dump_indent(aTHX_ level, file, "    LASTEXPR = %ld\n", (long)GvLASTEXPR(sv));
-       Perl_dump_indent(aTHX_ level, file, "    LINE = %ld\n", (long)GvLINE(sv));
-#endif
-       Perl_dump_indent(aTHX_ level, file, "    FLAGS = 0x%x\n", (int)GvFLAGS(sv));
+       Perl_dump_indent(aTHX_ level, file, "  GP = 0x%"UVxf"\n", PTR2UV(GvGP(sv)));
+       Perl_dump_indent(aTHX_ level, file, "    SV = 0x%"UVxf"\n", PTR2UV(GvSV(sv)));
+       Perl_dump_indent(aTHX_ level, file, "    REFCNT = %"IVdf"\n", (IV)GvREFCNT(sv));
+       Perl_dump_indent(aTHX_ level, file, "    IO = 0x%"UVxf"\n", PTR2UV(GvIOp(sv)));
+       Perl_dump_indent(aTHX_ level, file, "    FORM = 0x%"UVxf"  \n", PTR2UV(GvFORM(sv)));
+       Perl_dump_indent(aTHX_ level, file, "    AV = 0x%"UVxf"\n", PTR2UV(GvAV(sv)));
+       Perl_dump_indent(aTHX_ level, file, "    HV = 0x%"UVxf"\n", PTR2UV(GvHV(sv)));
+       Perl_dump_indent(aTHX_ level, file, "    CV = 0x%"UVxf"\n", PTR2UV(GvCV(sv)));
+       Perl_dump_indent(aTHX_ level, file, "    CVGEN = 0x%"UVxf"\n", (UV)GvCVGEN(sv));
+       Perl_dump_indent(aTHX_ level, file, "    LASTEXPR = %"IVdf"\n", (IV)GvLASTEXPR(sv));
+       Perl_dump_indent(aTHX_ level, file, "    LINE = %"IVdf"\n", (IV)GvLINE(sv));
+       Perl_dump_indent(aTHX_ level, file, "    FLAGS = 0x%"UVxf"\n", (UV)GvFLAGS(sv));
        do_gv_dump (level, file, "    FILEGV", GvFILEGV(sv));
        do_gv_dump (level, file, "    EGV", GvEGV(sv));
        break;
     case SVt_PVIO:
-#ifdef IV_IS_QUAD
-       Perl_dump_indent(aTHX_ level, file, "  IFP = 0x%" PERL_PRIx64 "\n", PTR2IV(IoIFP(sv)));
-       Perl_dump_indent(aTHX_ level, file, "  OFP = 0x%" PERL_PRIx64 "\n", PTR2IV(IoOFP(sv)));
-       Perl_dump_indent(aTHX_ level, file, "  DIRP = 0x%" PERL_PRIx64 "\n", PTR2IV(IoDIRP(sv)));
-       Perl_dump_indent(aTHX_ level, file, "  LINES = %" PERL_PRId64 "\n", (IV)IoLINES(sv));
-       Perl_dump_indent(aTHX_ level, file, "  PAGE = %" PERL_PRId64 "\n", (IV)IoPAGE(sv));
-       Perl_dump_indent(aTHX_ level, file, "  PAGE_LEN = %" PERL_PRId64 "\n", (IV)IoPAGE_LEN(sv));
-       Perl_dump_indent(aTHX_ level, file, "  LINES_LEFT = %" PERL_PRId64 "\n", (IV)IoLINES_LEFT(sv));
-#else
-       Perl_dump_indent(aTHX_ level, file, "  IFP = 0x%lx\n", (long)IoIFP(sv));
-       Perl_dump_indent(aTHX_ level, file, "  OFP = 0x%lx\n", (long)IoOFP(sv));
-       Perl_dump_indent(aTHX_ level, file, "  DIRP = 0x%lx\n", (long)IoDIRP(sv));
-       Perl_dump_indent(aTHX_ level, file, "  LINES = %ld\n", (long)IoLINES(sv));
-       Perl_dump_indent(aTHX_ level, file, "  PAGE = %ld\n", (long)IoPAGE(sv));
-       Perl_dump_indent(aTHX_ level, file, "  PAGE_LEN = %ld\n", (long)IoPAGE_LEN(sv));
-       Perl_dump_indent(aTHX_ level, file, "  LINES_LEFT = %ld\n", (long)IoLINES_LEFT(sv));
-#endif
+       Perl_dump_indent(aTHX_ level, file, "  IFP = 0x%"UVxf"\n", PTR2UV(IoIFP(sv)));
+       Perl_dump_indent(aTHX_ level, file, "  OFP = 0x%"UVxf"\n", PTR2UV(IoOFP(sv)));
+       Perl_dump_indent(aTHX_ level, file, "  DIRP = 0x%"UVxf"\n", PTR2UV(IoDIRP(sv)));
+       Perl_dump_indent(aTHX_ level, file, "  LINES = %"IVdf"\n", (IV)IoLINES(sv));
+       Perl_dump_indent(aTHX_ level, file, "  PAGE = %"IVdf"\n", (IV)IoPAGE(sv));
+       Perl_dump_indent(aTHX_ level, file, "  PAGE_LEN = %"IVdf"\n", (IV)IoPAGE_LEN(sv));
+       Perl_dump_indent(aTHX_ level, file, "  LINES_LEFT = %"IVdf"\n", (IV)IoLINES_LEFT(sv));
         if (IoTOP_NAME(sv))
             Perl_dump_indent(aTHX_ level, file, "  TOP_NAME = \"%s\"\n", IoTOP_NAME(sv));
        do_gv_dump (level, file, "  TOP_GV", IoTOP_GV(sv));
@@ -1300,20 +1138,12 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
         if (IoBOTTOM_NAME(sv))
             Perl_dump_indent(aTHX_ level, file, "  BOTTOM_NAME = \"%s\"\n", IoBOTTOM_NAME(sv));
        do_gv_dump (level, file, "  BOTTOM_GV", IoBOTTOM_GV(sv));
-#ifdef IV_IS_QUAD
-       Perl_dump_indent(aTHX_ level, file, "  SUBPROCESS = %" PERL_PRId64 "\n", (IV)IoSUBPROCESS(sv));
-#else
-       Perl_dump_indent(aTHX_ level, file, "  SUBPROCESS = %ld\n", (long)IoSUBPROCESS(sv));
-#endif
+       Perl_dump_indent(aTHX_ level, file, "  SUBPROCESS = %"IVdf"\n", (IV)IoSUBPROCESS(sv));
        if (isPRINT(IoTYPE(sv)))
             Perl_dump_indent(aTHX_ level, file, "  TYPE = '%c'\n", IoTYPE(sv));
        else
             Perl_dump_indent(aTHX_ level, file, "  TYPE = '\\%o'\n", IoTYPE(sv));
-#ifdef IV_IS_QUAD
-       Perl_dump_indent(aTHX_ level, file, "  FLAGS = 0x%" PERL_PRIx64 "\n", (IV)IoFLAGS(sv));
-#else
-       Perl_dump_indent(aTHX_ level, file, "  FLAGS = 0x%lx\n", (long)IoFLAGS(sv));
-#endif
+       Perl_dump_indent(aTHX_ level, file, "  FLAGS = 0x%"UVxf"\n", (UV)IoFLAGS(sv));
        break;
     }
 }
diff --git a/op.c b/op.c
index 8f8e796..40f4e36 100644 (file)
--- a/op.c
+++ b/op.c
@@ -5048,17 +5048,10 @@ Perl_ck_fun(pTHX_ OP *o)
                    char *name = SvPVx(((SVOP*)kid)->op_sv, n_a);
                    OP *newop = newAVREF(newGVOP(OP_GV, 0,
                        gv_fetchpv(name, TRUE, SVt_PVAV) ));
-#ifdef IV_IS_QUAD
                    if (ckWARN(WARN_SYNTAX))
                        Perl_warner(aTHX_ WARN_SYNTAX,
-                           "Array @%s missing the @ in argument %" PERL_PRId64 " of %s()",
+                           "Array @%s missing the @ in argument %"IVdf" of %s()",
                            name, (IV)numargs, PL_op_desc[type]);
-#else
-                   if (ckWARN(WARN_SYNTAX))
-                       Perl_warner(aTHX_ WARN_SYNTAX,
-                           "Array @%s missing the @ in argument %ld of %s()",
-                           name, (long)numargs, PL_op_desc[type]);
-#endif
                    op_free(kid);
                    kid = newop;
                    kid->op_sibling = sibl;
@@ -5075,17 +5068,10 @@ Perl_ck_fun(pTHX_ OP *o)
                    char *name = SvPVx(((SVOP*)kid)->op_sv, n_a);
                    OP *newop = newHVREF(newGVOP(OP_GV, 0,
                        gv_fetchpv(name, TRUE, SVt_PVHV) ));
-#ifdef IV_IS_QUAD
                    if (ckWARN(WARN_SYNTAX))
                        Perl_warner(aTHX_ WARN_SYNTAX,
-                           "Hash %%%s missing the %% in argument %" PERL_PRId64 " of %s()",
+                           "Hash %%%s missing the %% in argument %"IVdf" of %s()",
                            name, (IV)numargs, PL_op_desc[type]);
-#else
-                   if (ckWARN(WARN_SYNTAX))
-                       Perl_warner(aTHX_ WARN_SYNTAX,
-                           "Hash %%%s missing the %% in argument %ld of %s()",
-                           name, (long)numargs, PL_op_desc[type]);
-#endif
                    op_free(kid);
                    kid = newop;
                    kid->op_sibling = sibl;
diff --git a/perl.h b/perl.h
index 48765ee..1119ba9 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -1932,6 +1932,22 @@ typedef I32 CHECKPOINT;
 #   endif
 #endif
 
+#ifdef IV_IS_QUAD
+#  define UVuf PERL_PRIu64
+#  define IVdf PERL_PRId64
+#  define UVof PERL_PRIo64
+#  define UVxf PERL_PRIx64
+#else
+#   if LONGSIZE == 4
+#       define UVuf "lu"
+#       define IVdf "ld"
+#       define UVof "lo"
+#       define UVxf "lx"
+#   else
+        /* Any good ideas? */
+#   endif
+#endif
+
 /* Used with UV/IV arguments: */
                                        /* XXXX: need to speed it up */
 #define CLUMP_2UV(iv)  ((iv) < 0 ? 0 : (UV)(iv))
index 904ee9f..8afa2f8 100644 (file)
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -601,15 +601,9 @@ PP(pp_rv2hv)
        dTARGET;
        if (SvTYPE(hv) == SVt_PVAV)
            hv = avhv_keys((AV*)hv);
-#ifdef IV_IS_QUAD
        if (HvFILL(hv))
-            Perl_sv_setpvf(aTHX_ TARG, "%" PERL_PRId64 "/%" PERL_PRId64,
-                      (Quad_t)HvFILL(hv), (Quad_t)HvMAX(hv) + 1);
-#else
-       if (HvFILL(hv))
-            Perl_sv_setpvf(aTHX_ TARG, "%ld/%ld",
-                      (long)HvFILL(hv), (long)HvMAX(hv) + 1);
-#endif
+            Perl_sv_setpvf(aTHX_ TARG, "%"IVdf"/%"IVdf,
+                          (IV)HvFILL(hv), (IV)HvMAX(hv) + 1);
        else
            sv_setiv(TARG, 0);
        
index cf08f73..2963d2f 100644 (file)
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -825,17 +825,10 @@ PP(pp_untie)
     if (ckWARN(WARN_UNTIE)) {
         MAGIC * mg ;
         if (mg = SvTIED_mg(sv, how)) {
-#ifdef IV_IS_QUAD
             if (mg && SvREFCNT(SvRV(mg->mg_obj)) > 1)  
                Perl_warner(aTHX_ WARN_UNTIE,
-                   "untie attempted while %" PERL_PRIu64 " inner references still exist",
+                   "untie attempted while %"UVuf" inner references still exist",
                    (UV)SvREFCNT(SvRV(mg->mg_obj)) - 1 ) ;
-#else
-            if (mg && SvREFCNT(SvRV(mg->mg_obj)) > 1)  
-               Perl_warner(aTHX_ WARN_UNTIE,
-                   "untie attempted while %lu inner references still exist",
-                   (unsigned long)SvREFCNT(SvRV(mg->mg_obj)) - 1 ) ;
-#endif
         }
     }
  
index 64c06f0..921472a 100644 (file)
--- a/regcomp.c
+++ b/regcomp.c
@@ -702,11 +702,7 @@ S_study_chunk(pTHX_ regnode **scanp, I32 *deltap, regnode *last, scan_data_t *da
                    FAIL("variable length lookbehind not implemented");
                }
                else if (minnext > U8_MAX) {
-#ifdef UV_IS_QUAD
-                   FAIL2("lookbehind longer than %" PERL_PRIu64 " not implemented", (UV)U8_MAX);
-#else
-                   FAIL2("lookbehind longer than %d not implemented", U8_MAX);
-#endif
+                   FAIL2("lookbehind longer than %"UVuf" not implemented", (UV)U8_MAX);
                }
                scan->flags = minnext;
            }
@@ -2840,13 +2836,8 @@ S_regclassutf8(pTHX)
         if (range) {
            if (lastvalue > value)
                FAIL("invalid [] range in regexp"); /* [b-a] */
-#ifdef UV_IS_QUAD
-           if (!SIZE_ONLY)
-                Perl_sv_catpvf(aTHX_ listsv, "%04" PERL_PRIx64 "\t%04" PERL_PRIx64 "\n", (UV)lastvalue, (UV)value);
-#else
            if (!SIZE_ONLY)
-               Perl_sv_catpvf(aTHX_ listsv, "%04x\t%04x\n", lastvalue, value);
-#endif
+                Perl_sv_catpvf(aTHX_ listsv, "%04"UVxf"\t%04"UVxf"\n", (UV)lastvalue, (UV)value);
            range = 0;
        }
        else {
@@ -2861,13 +2852,8 @@ S_regclassutf8(pTHX)
            }
        }
        /* now is the next time */
-#ifdef UV_IS_QUAD
-       if (!SIZE_ONLY)
-           Perl_sv_catpvf(aTHX_ listsv, "%04" PERL_PRIx64 "\n", (UV)value);
-#else
        if (!SIZE_ONLY)
-           Perl_sv_catpvf(aTHX_ listsv, "%04x\n", value);
-#endif
+           Perl_sv_catpvf(aTHX_ listsv, "%04"UVxf"\n", (UV)value);
        range = 0;
     }
 
diff --git a/sv.c b/sv.c
index ba5833f..0a7d95c 100644 (file)
--- a/sv.c
+++ b/sv.c
@@ -1468,17 +1468,11 @@ Perl_sv_2iv(pTHX_ register SV *sv)
            SvUVX(sv) = U_V(SvNVX(sv));
            SvIsUV_on(sv);
          ret_iv_max:
-#ifdef IV_IS_QUAD
            DEBUG_c(PerlIO_printf(Perl_debug_log, 
-                                 "0x%" PERL_PRIx64 " 2iv(%" PERL_PRIu64 " => %" PERL_PRId64 ") (as unsigned)\n",
+                                 "0x%"UVxf" 2iv(%"UVuf" => %"IVdf") (as unsigned)\n",
                                  PTR2UV(sv),
-                                 (UV)SvUVX(sv), (IV)SvUVX(sv)));
-#else
-           DEBUG_c(PerlIO_printf(Perl_debug_log, 
-                                 "0x%lx 2iv(%lu => %ld) (as unsigned)\n",
-                                 (unsigned long)sv,
-                                 (unsigned long)SvUVX(sv), (long)(IV)SvUVX(sv)));
-#endif
+                                 SvUVX(sv),
+                                 SvUVX(sv)));
            return (IV)SvUVX(sv);
        }
     }
@@ -1612,17 +1606,11 @@ Perl_sv_2uv(pTHX_ register SV *sv)
        else {
            SvIVX(sv) = I_V(SvNVX(sv));
          ret_zero:
-#ifdef IV_IS_QUAD
            DEBUG_c(PerlIO_printf(Perl_debug_log, 
-                                 "0x%" PERL_PRIx64 " 2uv(%" PERL_PRId64 " => %" PERL_PRIu64 ") (as signed)\n",
-                                 (unsigned long)sv,(long)SvIVX(sv),
-                                 (long)(UV)SvIVX(sv)));
-#else
-           DEBUG_c(PerlIO_printf(Perl_debug_log, 
-                                 "0x%lx 2uv(%ld => %lu) (as signed)\n",
-                                 (unsigned long)sv,(long)SvIVX(sv),
-                                 (long)(UV)SvIVX(sv)));
-#endif
+                                 "0x%"UVxf" 2uv(%"IVdf" => %"UVdf") (as signed)\n",
+                                 PTR2UV(sv),
+                                 SvIVX(sv),
+                                 (IV)(UV)SvIVX(sv)));
            return (UV)SvIVX(sv);
        }
     }
@@ -2026,17 +2014,10 @@ Perl_sv_2pv(pTHX_ register SV *sv, STRLEN *lp)
            return SvPVX(sv);
        }
        if (SvIOKp(sv)) {
-#ifdef IV_IS_QUAD
            if (SvIsUV(sv)) 
-               (void)sprintf(tmpbuf,"%" PERL_PRIu64,(UV)SvUVX(sv));
+               (void)sprintf(tmpbuf,"%"UVuf, (UV)SvUVX(sv));
            else
-               (void)sprintf(tmpbuf,"%" PERL_PRId64,(IV)SvIVX(sv));
-#else
-           if (SvIsUV(sv)) 
-               (void)sprintf(tmpbuf,"%lu",(unsigned long)SvUVX(sv));
-           else
-               (void)sprintf(tmpbuf,"%ld",(long)SvIVX(sv));
-#endif
+               (void)sprintf(tmpbuf,"%"IVdf, (IV)SvIVX(sv));
            tsv = Nullsv;
            goto tokensave;
        }
@@ -2134,11 +2115,7 @@ Perl_sv_2pv(pTHX_ register SV *sv, STRLEN *lp)
                    Perl_sv_setpvf(aTHX_ tsv, "%s=%s", HvNAME(SvSTASH(sv)), s);
                else
                    sv_setpv(tsv, s);
-#ifdef IV_IS_QUAD
-               Perl_sv_catpvf(aTHX_ tsv, "(0x%" PERL_PRIx64")", PTR2UV(sv));
-#else
-               Perl_sv_catpvf(aTHX_ tsv, "(0x%lx)", (unsigned long)sv);
-#endif
+               Perl_sv_catpvf(aTHX_ tsv, "(0x%"UVxf")", PTR2UV(sv));
                goto tokensaveref;
            }
            *lp = strlen(s);
@@ -5561,19 +5538,13 @@ Perl_sv_vcatpvfn(pTHX_ SV *sv, const char *pat, STRLEN patlen, va_list *args, SV
                Perl_sv_setpvf(aTHX_ msg, "Invalid conversion in %s: ",
                          (PL_op->op_type == OP_PRTF) ? "printf" : "sprintf");
                if (c) {
-#ifdef UV_IS_QUAD
                    if (isPRINT(c))
                        Perl_sv_catpvf(aTHX_ msg, 
                                       "\"%%%c\"", c & 0xFF);
                    else
                        Perl_sv_catpvf(aTHX_ msg,
-                                      "\"%%\\%03" PERL_PRIo64 "\"",
+                                      "\"%%\\%03"UVof"\"",
                                       (UV)c & 0xFF);
-#else
-                   Perl_sv_catpvf(aTHX_ msg, isPRINT(c) ?
-                                  "\"%%%c\"" : "\"%%\\%03o\"",
-                                  c & 0xFF);
-#endif
                } else
                    sv_catpv(msg, "end of string");
                Perl_warner(aTHX_ WARN_PRINTF, "%_", msg); /* yes, this is reentrant */
diff --git a/taint.c b/taint.c
index 2a5fedc..c272066 100644 (file)
--- a/taint.c
+++ b/taint.c
@@ -14,12 +14,12 @@ Perl_taint_proper(pTHX_ const char *f, char *s)
     dTHR;      /* just for taint */
     char *ug;
 
-#ifdef IV_IS_QUAD
+#if Uid_t_SIGN == -1
     DEBUG_u(PerlIO_printf(Perl_debug_log,
-            "%s %d %" PERL_PRId64 " %" PERL_PRId64 "\n", s, PL_tainted, (IV)PL_uid, (IV)PL_euid));
+            "%s %d %"IVdf" %"IVdf"\n", s, PL_tainted, (IV)PL_uid, (IV)PL_euid));
 #else
     DEBUG_u(PerlIO_printf(Perl_debug_log,
-            "%s %d %lu %lu\n", s, PL_tainted, (unsigned long)PL_uid, (unsigned long)PL_euid));
+            "%s %d %"UVuf" %"UVuf"\n", s, PL_tainted, (UV)PL_uid, (UV)PL_euid));
 #endif
 
     if (PL_tainted) {
diff --git a/toke.c b/toke.c
index 8777426..e255b72 100644 (file)
--- a/toke.c
+++ b/toke.c
@@ -3741,13 +3741,8 @@ Perl_yylex(pTHX)
            TERM(THING);
 
        case KEY___LINE__:
-#ifdef IV_IS_QUAD
             yylval.opval = (OP*)newSVOP(OP_CONST, 0,
-                                    Perl_newSVpvf(aTHX_ "%" PERL_PRId64, (IV)PL_curcop->cop_line));
-#else
-            yylval.opval = (OP*)newSVOP(OP_CONST, 0,
-                                    Perl_newSVpvf(aTHX_ "%ld", (long)PL_curcop->cop_line));
-#endif
+                                    Perl_newSVpvf(aTHX_ "%"IVdf, (IV)PL_curcop->cop_line));
            TERM(THING);
 
        case KEY___PACKAGE__:
@@ -6995,28 +6990,16 @@ Perl_yyerror(pTHX_ char *s)
        where = SvPVX(where_sv);
     }
     msg = sv_2mortal(newSVpv(s, 0));
-#ifdef IV_IS_QUAD
-    Perl_sv_catpvf(aTHX_ msg, " at %_ line %" PERL_PRId64 ", ",
+    Perl_sv_catpvf(aTHX_ msg, " at %_ line %"IVdf", ",
               GvSV(PL_curcop->cop_filegv), (IV)PL_curcop->cop_line);
-#else
-    Perl_sv_catpvf(aTHX_ msg, " at %_ line %ld, ",
-              GvSV(PL_curcop->cop_filegv), (long)PL_curcop->cop_line);
-#endif
     if (context)
        Perl_sv_catpvf(aTHX_ msg, "near \"%.*s\"\n", contlen, context);
     else
        Perl_sv_catpvf(aTHX_ msg, "%s\n", where);
     if (PL_multi_start < PL_multi_end && (U32)(PL_curcop->cop_line - PL_multi_end) <= 1) {
-#ifdef IV_IS_QUAD
         Perl_sv_catpvf(aTHX_ msg,
-        "  (Might be a runaway multi-line %c%c string starting on line %" PERL_\
-PRId64 ")\n",
+        "  (Might be a runaway multi-line %c%c string starting on line %"IVdf")\n",
                 (int)PL_multi_open,(int)PL_multi_close,(IV)PL_multi_start);
-#else
-        Perl_sv_catpvf(aTHX_ msg,
-        "  (Might be a runaway multi-line %c%c string starting on line %ld)\n",
-                (int)PL_multi_open,(int)PL_multi_close,(long)PL_multi_start);
-#endif
         PL_multi_end = 0;
     }
     if (PL_in_eval & EVAL_WARNONLY)
diff --git a/util.c b/util.c
index 97401ab..d32f897 100644 (file)
--- a/util.c
+++ b/util.c
@@ -1418,29 +1418,16 @@ Perl_vmess(pTHX_ const char *pat, va_list *args)
     sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*));
     if (!SvCUR(sv) || *(SvEND(sv) - 1) != '\n') {
        dTHR;
-#ifdef IV_IS_QUAD
        if (PL_curcop->cop_line)
-           Perl_sv_catpvf(aTHX_ sv, " at %_ line %" PERL_PRId64,
+           Perl_sv_catpvf(aTHX_ sv, " at %_ line %"IVdf,
                      GvSV(PL_curcop->cop_filegv), (IV)PL_curcop->cop_line);
-#else
-       if (PL_curcop->cop_line)
-           Perl_sv_catpvf(aTHX_ sv, " at %_ line %ld",
-                     GvSV(PL_curcop->cop_filegv), (long)PL_curcop->cop_line);
-#endif
        if (GvIO(PL_last_in_gv) && IoLINES(GvIOp(PL_last_in_gv))) {
            bool line_mode = (RsSIMPLE(PL_rs) &&
                              SvCUR(PL_rs) == 1 && *SvPVX(PL_rs) == '\n');
-#ifdef IV_IS_QUAD
-           Perl_sv_catpvf(aTHX_ sv, ", <%s> %s %" PERL_PRId64,
+           Perl_sv_catpvf(aTHX_ sv, ", <%s> %s %"IVdf,
                      PL_last_in_gv == PL_argvgv ? "" : GvNAME(PL_last_in_gv),
                      line_mode ? "line" : "chunk", 
                      (IV)IoLINES(GvIOp(PL_last_in_gv)));
-#else
-           Perl_sv_catpvf(aTHX_ sv, ", <%s> %s %ld",
-                     PL_last_in_gv == PL_argvgv ? "" : GvNAME(PL_last_in_gv),
-                     line_mode ? "line" : "chunk", 
-                     (long)IoLINES(GvIOp(PL_last_in_gv)));
-#endif
        }
 #ifdef USE_THREADS
        if (thr->tid)