This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Re: [PATCH] Re: Storing &PL_sv_undef as a hash key with perl-5.8.x
[perl5.git] / perlio.h
index 381367d..dd1e3d5 100644 (file)
--- a/perlio.h
+++ b/perlio.h
@@ -1,3 +1,13 @@
+/*    perlio.h
+ *
+ *    Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2003,
+ *    by Larry Wall and others
+ *
+ *    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 +41,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 +108,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 AV* PerlIO_get_layers(pTHX_ PerlIO *f);
 extern void PerlIO_clone(pTHX_ PerlInterpreter *proto, CLONE_PARAMS *param);
 
 #endif                         /* PerlIO */
@@ -144,7 +160,7 @@ extern void PerlIO_clone(pTHX_ PerlInterpreter *proto, CLONE_PARAMS *param);
 #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  ---------- */
 
@@ -173,9 +189,19 @@ extern void PerlIO_clone(pTHX_ PerlInterpreter *proto, CLONE_PARAMS *param);
 #define SEEK_END 2
 #endif
 
+#define PERLIO_DUP_CLONE       1
+#define PERLIO_DUP_FD          2
+
 /* --------------------- Now prototypes for functions --------------- */
 
 START_EXTERN_C
+#ifndef __attribute__format__
+#ifdef CHECK_FORMAT
+#define __attribute__format__(x,y,z) __attribute__((__format__(x,y,z)))
+#else
+#define __attribute__format__(x,y,z)
+#endif
+#endif
 #ifndef NEXT30_NO_ATTRIBUTE
 #ifndef HASATTRIBUTE           /* disable GNU-cc attribute checking? */
 #ifdef  __attribute__          /* Avoid possible redefinition errors */
@@ -189,7 +215,7 @@ extern void PerlIO_init(pTHX);
 #endif
 #ifndef PerlIO_stdoutf
 extern int PerlIO_stdoutf(const char *, ...)
-    __attribute__ ((__format__(__printf__, 1, 2)));
+    __attribute__format__(__printf__, 1, 2);
 #endif
 #ifndef PerlIO_puts
 extern int PerlIO_puts(PerlIO *, const char *);
@@ -202,9 +228,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
@@ -220,23 +243,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 *);
@@ -258,11 +275,11 @@ extern void PerlIO_setlinebuf(PerlIO *);
 #endif
 #ifndef PerlIO_printf
 extern int PerlIO_printf(PerlIO *, const char *, ...)
-    __attribute__ ((__format__(__printf__, 2, 3)));
+    __attribute__format__(__printf__, 2, 3);
 #endif
 #ifndef PerlIO_sprintf
 extern int PerlIO_sprintf(char *, int, const char *, ...)
-    __attribute__ ((__format__(__printf__, 3, 4)));
+    __attribute__format__(__printf__, 3, 4);
 #endif
 #ifndef PerlIO_vprintf
 extern int PerlIO_vprintf(PerlIO *, const char *, va_list);
@@ -325,7 +342,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);