diff options
author | Nick Ing-Simmons <nik@tiuk.ti.com> | 2001-03-22 22:26:51 +0000 |
---|---|---|
committer | Nick Ing-Simmons <nik@tiuk.ti.com> | 2001-03-22 22:26:51 +0000 |
commit | ee518936bd3eee0065c20591f5182f733dadd4bd (patch) | |
tree | 47bb05c60004fa322c14c6f944b966a8f4840ebc /perliol.h | |
parent | 4fbc943a81ac8168e4ba63497561c515427127d8 (diff) | |
download | perl-ee518936bd3eee0065c20591f5182f733dadd4bd.tar.gz |
Snapshot of new PerlIO open scheme. Still buggy - mainly in open($fh,">&STDOUT!")
type code.
- Invent PerlIO_openn() - which has "lots" of args a bit like do_openn() which
is its main caller. In particular now has access to "extra" args, and
can tell when an open handle is "reopened" (or duped?).
- In -Duseperlio PerlIO_open() et. al. are now wrappers on PerlIO_openn().
- In -Uuseperlio (untested as yet) PerlIO_openn() is a wrapper on
PerlIO_open() et. al. (i.e. other way round).
- Collapse "vtable" entries for layers - was fdopen/open/reopen now just open
with args close to PerlIO_openn().
p4raw-id: //depot/perlio@9302
Diffstat (limited to 'perliol.h')
-rw-r--r-- | perliol.h | 8 |
1 files changed, 2 insertions, 6 deletions
@@ -7,9 +7,7 @@ struct _PerlIO_funcs Size_t size; IV kind; IV (*Fileno)(PerlIO *f); - PerlIO * (*Fdopen)(PerlIO_funcs *tab, int fd, const char *mode); - PerlIO * (*Open)(PerlIO_funcs *tab, const char *path, const char *mode); - int (*Reopen)(const char *path, const char *mode, PerlIO *f); + PerlIO * (*Open)(pTHX_ PerlIO_funcs *tab, const char *mode, int fd, int imode, int perm, PerlIO *old, int narg, SV **args); IV (*Pushed)(PerlIO *f,const char *mode,const char *arg,STRLEN len); IV (*Popped)(PerlIO *f); /* Unix-like functions - cf sfio line disciplines */ @@ -131,9 +129,7 @@ typedef struct IV oneword; /* Emergency buffer */ } PerlIOBuf; -extern PerlIO * PerlIOBuf_fdopen (PerlIO_funcs *self, int fd, const char *mode); -extern PerlIO * PerlIOBuf_open (PerlIO_funcs *self, const char *path, const char *mode); -extern int PerlIOBuf_reopen (const char *path, const char *mode, PerlIO *f); +extern PerlIO * PerlIOBuf_open (pTHX_ PerlIO_funcs *self, const char *mode, int fd, int imode, int perm, PerlIO *old, int narg, SV **args); extern SSize_t PerlIOBuf_read (PerlIO *f, void *vbuf, Size_t count); extern SSize_t PerlIOBuf_unread (PerlIO *f, const void *vbuf, Size_t count); extern SSize_t PerlIOBuf_write (PerlIO *f, const void *vbuf, Size_t count); |