+/* perlio.h
+ *
+ * Copyright (c) 1997-2002, Larry Wall
+ *
+ * You may distribute under the terms of either the GNU General Public
+ * License or the Artistic License, as specified in the README file.
+ *
+ */
+
#ifndef _PERLIO_H
#define _PERLIO_H
/*
#if defined(PERL_IMPLICIT_SYS)
#ifndef USE_PERLIO
#ifndef NETWARE
-# define USE_PERLIO
+/* # define USE_PERLIO */
#endif
#endif
#endif
*/
#include <stdio.h>
+#ifdef __BEOS__
+int fseeko(FILE *stream, off_t offset, int whence);
+off_t ftello(FILE *stream);
+#endif
+
#if defined(USE_64_BIT_STDIO) && defined(HAS_FTELLO) && !defined(USE_FTELL64)
#define ftell ftello
#endif
extern PerlIO *PerlIO_push(pTHX_ PerlIO *f, PerlIO_funcs *tab,
const char *mode, SV *arg);
extern void PerlIO_pop(pTHX_ PerlIO *f);
+extern void PerlIO_clone(pTHX_ PerlInterpreter *proto, CLONE_PARAMS *param);
#endif /* PerlIO */
#endif /* ifndef PERLIO_NOT_STDIO */
#endif /* PERLIO_IS_STDIO */
-#define specialCopIO(sv) ((sv) != Nullsv)
+#define specialCopIO(sv) ((sv) == Nullsv)
/* ----------- fill in things that have not got #define'd ---------- */
#define SEEK_END 2
#endif
+#define PERLIO_DUP_CLONE 1
+#define PERLIO_DUP_FD 2
+
/* --------------------- Now prototypes for functions --------------- */
START_EXTERN_C
#endif
#endif
#ifndef PerlIO_init
-extern void PerlIO_init(void);
+extern void PerlIO_init(pTHX);
#endif
#ifndef PerlIO_stdoutf
extern int PerlIO_stdoutf(const char *, ...)
int fd, int imode, int perm, PerlIO *old,
int narg, SV **arg);
#endif
-#ifndef PerlIO_close
-extern int PerlIO_close(PerlIO *);
-#endif
#ifndef PerlIO_eof
extern int PerlIO_eof(PerlIO *);
#endif
#ifndef PerlIO_putc
extern int PerlIO_putc(PerlIO *, int);
#endif
-#ifndef PerlIO_flush
-extern int PerlIO_flush(PerlIO *);
-#endif
#ifndef PerlIO_ungetc
extern int PerlIO_ungetc(PerlIO *, int);
#endif
-#ifndef PerlIO_fileno
-extern int PerlIO_fileno(PerlIO *);
-#endif
#ifndef PerlIO_fdopen
extern PerlIO *PerlIO_fdopen(int, const char *);
#endif
#ifndef PerlIO_importFILE
-extern PerlIO *PerlIO_importFILE(FILE *, int);
+extern PerlIO *PerlIO_importFILE(FILE *, const char *);
#endif
#ifndef PerlIO_exportFILE
-extern FILE *PerlIO_exportFILE(PerlIO *, int);
+extern FILE *PerlIO_exportFILE(PerlIO *, const char *);
#endif
#ifndef PerlIO_findFILE
extern FILE *PerlIO_findFILE(PerlIO *);
extern int PerlIO_setpos(PerlIO *, SV *);
#endif
#ifndef PerlIO_fdupopen
-extern PerlIO *PerlIO_fdupopen(pTHX_ PerlIO *, CLONE_PARAMS *);
+extern PerlIO *PerlIO_fdupopen(pTHX_ PerlIO *, CLONE_PARAMS *, int);
#endif
#if !defined(PerlIO_modestr) && !defined(PERLIO_IS_STDIO)
extern char *PerlIO_modestr(PerlIO *, char *buf);
extern int PerlIO_intmode2str(int rawmode, char *mode, int *writing);
-#ifndef PERLIO_IS_STDIO
-
-extern void PerlIO_cleanup(void);
+#ifdef PERLIO_LAYERS
+extern void PerlIO_cleanup(pTHX);
extern void PerlIO_debug(const char *fmt, ...);
+typedef struct PerlIO_list_s PerlIO_list_t;
+
#endif