#define PerlIO PerlIO
#define PERLIO_LAYERS 1
-extern void PerlIO_define_layer (PerlIO_funcs *tab);
-extern SV * PerlIO_find_layer(char *name, STRLEN len);
-extern PerlIO * PerlIO_push (PerlIO *f,PerlIO_funcs *tab,const char *mode);
-extern void PerlIO_pop (PerlIO *f);
+extern void PerlIO_define_layer (pTHX_ PerlIO_funcs *tab);
+extern SV * PerlIO_find_layer (pTHX_ const char *name, STRLEN len);
+extern PerlIO * PerlIO_push (pTHX_ PerlIO *f,PerlIO_funcs *tab,const char *mode,SV *arg);
+extern void PerlIO_pop (pTHX_ PerlIO *f);
#endif /* PerlIO */
#ifndef PERLIO_NOT_STDIO
#define PERLIO_NOT_STDIO 1
#endif
+#else
+#ifndef PERLIO_NOT_STDIO
+#define PERLIO_NOT_STDIO 0
+#endif
#endif
#ifdef PERLIO_NOT_STDIO
#endif /* ifndef PERLIO_NOT_STDIO */
#endif /* PERLIO_IS_STDIO */
+#define specialCopIO(sv) ((sv) != Nullsv)
+
/* ----------- fill in things that have not got #define'd ---------- */
#ifndef Fpos_t
/* --------------------- Now prototypes for functions --------------- */
+START_EXTERN_C
+
#ifndef NEXT30_NO_ATTRIBUTE
#ifndef HASATTRIBUTE /* disable GNU-cc attribute checking? */
#ifdef __attribute__ /* Avoid possible redefinition errors */
#ifndef PerlIO_open
extern PerlIO * PerlIO_open (const char *,const char *);
#endif
+#ifndef PerlIO_openn
+extern PerlIO * PerlIO_openn (pTHX_ const char *layers, const char *mode,int fd,int imode,int perm,PerlIO *old,int narg,SV **arg);
+#endif
#ifndef PerlIO_close
extern int PerlIO_close (PerlIO *);
#endif
extern PerlIO * PerlIO_stderr (void);
#endif
#ifndef PerlIO_getpos
-extern int PerlIO_getpos (PerlIO *,Fpos_t *);
+extern int PerlIO_getpos (PerlIO *,SV *);
#endif
#ifndef PerlIO_setpos
-extern int PerlIO_setpos (PerlIO *,const Fpos_t *);
+extern int PerlIO_setpos (PerlIO *,SV *);
#endif
#ifndef PerlIO_fdupopen
-extern PerlIO * PerlIO_fdupopen (PerlIO *);
+extern PerlIO * PerlIO_fdupopen (pTHX_ PerlIO *);
+#endif
+#if !defined(PerlIO_modestr) && !defined(PERLIO_IS_STDIO)
+extern char *PerlIO_modestr (PerlIO *,char *buf);
#endif
#ifndef PerlIO_isutf8
extern int PerlIO_isutf8 (PerlIO *);
#endif
+#ifndef PerlIO_apply_layers
+extern int PerlIO_apply_layers (pTHX_ PerlIO *f, const char *mode, const char *names);
+#endif
+#ifndef PerlIO_binmode
+extern int PerlIO_binmode (pTHX_ PerlIO *f, int iotype, int omode, const char *names);
+#endif
+
+#ifndef PERLIO_IS_STDIO
+
+extern void PerlIO_cleanup(void);
+
+extern void PerlIO_debug(const char *fmt,...);
+
+#endif
+
+END_EXTERN_C
#endif /* _PERLIO_H */