readd missing perldelta.pod changes from changes#6339,6376
[p5sagit/p5-mst-13.2.git] / sv.h
diff --git a/sv.h b/sv.h
index 23cf29e..b77a9d3 100644 (file)
--- a/sv.h
+++ b/sv.h
@@ -365,14 +365,16 @@ struct xpvio {
     PerlIO *   xio_ofp;        /* but sockets need separate streams */
     /* Cray addresses everything by word boundaries (64 bits) and
      * code and data pointers cannot be mixed (which is exactly what
-     * Perl_filter_add() tries to do), hence the following
+     * Perl_filter_add() tries to do with the dirp), hence the following
      * union trick (as suggested by Gurusamy Sarathy).
      * For further information see Geir Johansen's problem report titled
        [ID 20000612.002] Perl problem on Cray system
+     * The any pointer (known as IoANY()) will also be a good place
+     * to hang any IO disciplines to.
      */
     union {
        DIR *   xiou_dirp;      /* for opendir, readdir, etc */
-       void *  xiou_dummy;     /* for alignment */
+       void *  xiou_any;       /* for alignment */
     } xio_dirpu;
     long       xio_lines;      /* $. */
     long       xio_page;       /* $% */
@@ -388,7 +390,8 @@ struct xpvio {
     char       xio_type;
     char       xio_flags;
 };
-#define xio_dirp xio_dirpu.xiou_dirp
+#define xio_dirp       xio_dirpu.xiou_dirp
+#define xio_any                xio_dirpu.xiou_any
 
 #define IOf_ARGV       1       /* this fp iterates over ARGV */
 #define IOf_START      2       /* check for null ARGV and substitute '-' */
@@ -715,6 +718,7 @@ Set the length of the string which is in the SV.  See C<SvCUR>.
 #define IoIFP(sv)      ((XPVIO*)  SvANY(sv))->xio_ifp
 #define IoOFP(sv)      ((XPVIO*)  SvANY(sv))->xio_ofp
 #define IoDIRP(sv)     ((XPVIO*)  SvANY(sv))->xio_dirp
+#define IoANY(sv)      ((XPVIO*)  SvANY(sv))->xio_any
 #define IoLINES(sv)    ((XPVIO*)  SvANY(sv))->xio_lines
 #define IoPAGE(sv)     ((XPVIO*)  SvANY(sv))->xio_page
 #define IoPAGE_LEN(sv) ((XPVIO*)  SvANY(sv))->xio_page_len