This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Test::Harness 2.25 -> 2.26
[perl5.git] / perlio.h
index 1921a52..3fa6b15 100644 (file)
--- a/perlio.h
+++ b/perlio.h
@@ -1,3 +1,12 @@
+/*    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
 /*
@@ -31,7 +40,7 @@
 #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
@@ -93,6 +107,7 @@ extern PerlIO_funcs *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);
+extern void PerlIO_clone(pTHX_ PerlInterpreter *proto, CLONE_PARAMS *param);
 
 #endif                         /* PerlIO */
 
@@ -143,7 +158,7 @@ extern void PerlIO_pop(pTHX_ PerlIO *f);
 #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  ---------- */
 
@@ -172,6 +187,9 @@ extern void PerlIO_pop(pTHX_ PerlIO *f);
 #define SEEK_END 2
 #endif
 
+#define PERLIO_DUP_CLONE       1
+#define PERLIO_DUP_FD          2
+
 /* --------------------- Now prototypes for functions --------------- */
 
 START_EXTERN_C
@@ -184,7 +202,7 @@ 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 *, ...)
@@ -201,9 +219,6 @@ 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
 #ifndef PerlIO_eof
 extern int PerlIO_eof(PerlIO *);
 #endif
@@ -219,23 +234,17 @@ extern int PerlIO_getc(PerlIO *);
 #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 *);
@@ -324,7 +333,7 @@ extern int PerlIO_getpos(PerlIO *, SV *);
 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);
@@ -346,11 +355,14 @@ extern char *PerlIO_getname(PerlIO *, char *);
 
 extern void PerlIO_destruct(pTHX);
 
-#ifndef PERLIO_IS_STDIO
+extern int PerlIO_intmode2str(int rawmode, char *mode, int *writing);
 
-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