perl 5.003_04: hints/irix_6_2.sh hints/mpeix.sh
[p5sagit/p5-mst-13.2.git] / sv.h
diff --git a/sv.h b/sv.h
index 4e5592d..710664c 100644 (file)
--- a/sv.h
+++ b/sv.h
@@ -129,6 +129,8 @@ struct io {
 #define SVpbm_CASEFOLD 0x40000000
 #define SVpbm_TAIL     0x20000000
 
+#define SVphv_SHAREKEYS 0x20000000     /* keys live on shared string table */
+
 #ifdef OVERLOAD
 #define SVpgv_AM        0x40000000
 /* #define SVpgv_badAM     0x20000000 */
@@ -245,8 +247,8 @@ struct xpvio {
     MAGIC*     xmg_magic;      /* linked list of magicalness */
     HV*                xmg_stash;      /* class package */
 
-    FILE *     xio_ifp;        /* ifp and ofp are normally the same */
-    FILE *     xio_ofp;        /* but sockets need separate streams */
+    PerlIO *   xio_ifp;        /* ifp and ofp are normally the same */
+    PerlIO *   xio_ofp;        /* but sockets need separate streams */
     DIR *      xio_dirp;       /* for opendir, readdir, etc */
     long       xio_lines;      /* $. */
     long       xio_page;       /* $% */
@@ -424,23 +426,23 @@ struct xpvio {
 #define SvSTASH(sv)    ((XPVMG*)  SvANY(sv))->xmg_stash
 
 #define SvIV_set(sv, val) \
-       do { assert(SvTYPE(sv) == SVt_IV || SvTYPE(sv) >= SVt_PVIV); \
-               (((XPVIV*)  SvANY(sv))->xiv_iv = val); } while (0)
+       STMT_START { assert(SvTYPE(sv) == SVt_IV || SvTYPE(sv) >= SVt_PVIV); \
+               (((XPVIV*)  SvANY(sv))->xiv_iv = val); } STMT_END
 #define SvNV_set(sv, val) \
-       do { assert(SvTYPE(sv) == SVt_NV || SvTYPE(sv) >= SVt_PVNV); \
-               (((XPVNV*)  SvANY(sv))->xnv_nv = val); } while (0)
+       STMT_START { assert(SvTYPE(sv) == SVt_NV || SvTYPE(sv) >= SVt_PVNV); \
+               (((XPVNV*)  SvANY(sv))->xnv_nv = val); } STMT_END
 #define SvPV_set(sv, val) \
-       do { assert(SvTYPE(sv) >= SVt_PV); \
-               (((XPV*)  SvANY(sv))->xpv_pv = val); } while (0)
+       STMT_START { assert(SvTYPE(sv) >= SVt_PV); \
+               (((XPV*)  SvANY(sv))->xpv_pv = val); } STMT_END
 #define SvCUR_set(sv, val) \
-       do { assert(SvTYPE(sv) >= SVt_PV); \
-               (((XPV*)  SvANY(sv))->xpv_cur = val); } while (0)
+       STMT_START { assert(SvTYPE(sv) >= SVt_PV); \
+               (((XPV*)  SvANY(sv))->xpv_cur = val); } STMT_END
 #define SvLEN_set(sv, val) \
-       do { assert(SvTYPE(sv) >= SVt_PV); \
-               (((XPV*)  SvANY(sv))->xpv_len = val); } while (0)
+       STMT_START { assert(SvTYPE(sv) >= SVt_PV); \
+               (((XPV*)  SvANY(sv))->xpv_len = val); } STMT_END
 #define SvEND_set(sv, val) \
-       do { assert(SvTYPE(sv) >= SVt_PV); \
-               (((XPV*)  SvANY(sv))->xpv_cur = val - SvPVX(sv)); } while (0)
+       STMT_START { assert(SvTYPE(sv) >= SVt_PV); \
+               (((XPV*)  SvANY(sv))->xpv_cur = val - SvPVX(sv)); } STMT_END
 
 #define BmRARE(sv)     ((XPVBM*)  SvANY(sv))->xbm_rare
 #define BmUSEFUL(sv)   ((XPVBM*)  SvANY(sv))->xbm_useful