X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperliol.pod;h=a560d970cb639b94e9ac740227338fcbbc1b5157;hb=6fa4d285bff5644bebb95aff09143322042282cc;hp=9f08df45885eda6a99feaa913375d0ec08c5bd8b;hpb=8741baa62796692d597adcc67ba9cbde3b4035c9;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perliol.pod b/pod/perliol.pod index 9f08df4..a560d97 100644 --- a/pod/perliol.pod +++ b/pod/perliol.pod @@ -22,7 +22,7 @@ maintain (source) compatibility. The aim of the implementation is to provide the PerlIO API in a flexible and platform neutral manner. It is also a trial of an "Object Oriented -C, with vtables" approach which may be applied to perl6. +C, with vtables" approach which may be applied to Perl 6. =head2 Basic Structure @@ -145,7 +145,7 @@ same as the public C functions: IV (*Pushed)(pTHX_ PerlIO *f,const char *mode,SV *arg, PerlIO_funcs *tab); IV (*Popped)(pTHX_ PerlIO *f); PerlIO * (*Open)(pTHX_ PerlIO_funcs *tab, - AV *layers, IV n, + PerlIO_list_t *layers, IV n, const char *mode, int fd, int imode, int perm, PerlIO *old, @@ -246,7 +246,7 @@ representing open (allocated) handles. For example the first three slots in the table correspond to C,C and C. The table in turn points to the current "top" layer for the handle - in this case an instance of the generic buffering layer "perlio". That layer in turn -points to the next layer down - in this case the lowlevel "unix" layer. +points to the next layer down - in this case the low-level "unix" layer. The above is roughly equivalent to a "stdio" buffered stream, but with much more flexibility: @@ -486,7 +486,7 @@ C and C. The full prototype is as follows: PerlIO * (*Open)(pTHX_ PerlIO_funcs *tab, - AV *layers, IV n, + PerlIO_list_t *layers, IV n, const char *mode, int fd, int imode, int perm, PerlIO *old, @@ -494,7 +494,7 @@ follows: Open should (perhaps indirectly) call C to allocate a slot in the table and associate it with the layers information for -the opened file, by calling C. The I AV is an +the opened file, by calling C. The I is an array of all the layers destined for the C, and any arguments passed to them, I is the index into that array of the layer being called. The macro C will return a (possibly @@ -559,10 +559,9 @@ pushed. e.g. ":encoding(ascii)" would return an SvPV with value "ascii". (I and I arguments can be ignored in most cases) -If the layer's C function uses an extra argument, this -function is a must if the layer is ever going to be duped, since -C will use C to retrieve the argument originally passed -to C. +C uses C to retrieve the argument originally passed to +C, so you must implement this function if your layer has an +extra argument to C and will ever be Ced. =item Fileno