X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=perliol.h;h=c14e823efe678ddedd78a106c082899b1b59a9eb;hb=895fe8448c39ec9ce61fb5a2b7f671d3d15dcb46;hp=eb6a415a3084dbcdc10bf9ccb99b25695775fd90;hpb=14a5cf38cb6bde23aa6e81a63d9807561599a360;p=p5sagit%2Fp5-mst-13.2.git diff --git a/perliol.h b/perliol.h index eb6a415..c14e823 100644 --- a/perliol.h +++ b/perliol.h @@ -6,12 +6,12 @@ typedef struct { SV *arg; } PerlIO_pair_t; -typedef struct { +struct PerlIO_list_s { IV refcnt; IV cur; IV len; PerlIO_pair_t *array; -} PerlIO_list_t; +}; struct _PerlIO_funcs { char *name; @@ -26,6 +26,7 @@ struct _PerlIO_funcs { PerlIO *old, int narg, SV **args); SV *(*Getarg) (PerlIO *f); IV (*Fileno) (PerlIO *f); + PerlIO *(*Dup) (pTHX_ PerlIO *f, PerlIO *o, CLONE_PARAMS *param); /* Unix-like functions - cf sfio line disciplines */ SSize_t(*Read) (PerlIO *f, void *vbuf, Size_t count); SSize_t(*Unread) (PerlIO *f, const void *vbuf, Size_t count); @@ -119,6 +120,7 @@ extern SV *PerlIO_arg_fetch(PerlIO_list_t *av, IV n); /* Generic, or stub layer functions */ extern IV PerlIOBase_fileno(PerlIO *f); +extern PerlIO *PerlIOBase_dup(pTHX_ PerlIO *f, PerlIO *o, CLONE_PARAMS *param); extern IV PerlIOBase_pushed(PerlIO *f, const char *mode, SV *arg); extern IV PerlIOBase_popped(PerlIO *f); extern SSize_t PerlIOBase_read(PerlIO *f, void *vbuf, Size_t count); @@ -150,6 +152,7 @@ typedef struct { IV oneword; /* Emergency buffer */ } PerlIOBuf; +extern SV *PerlIO_sv_dup(pTHX_ SV *arg, CLONE_PARAMS *param); extern PerlIO *PerlIOBuf_open(pTHX_ PerlIO_funcs *self, PerlIO_list_t *layers, IV n, const char *mode, int fd, int imode,