Re: sync sync sync: have I missed any patches?
[p5sagit/p5-mst-13.2.git] / perliol.h
index a2581b2..6d4485a 100644 (file)
--- a/perliol.h
+++ b/perliol.h
@@ -10,7 +10,7 @@ struct _PerlIO_funcs
  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);
- IV            (*Pushed)(PerlIO *f,const char *mode);
+ IV            (*Pushed)(PerlIO *f,const char *mode,const char *arg,STRLEN len);
  IV            (*Popped)(PerlIO *f);
  /* Unix-like functions - cf sfio line disciplines */
  SSize_t       (*Read)(PerlIO *f, void *vbuf, Size_t count);
@@ -40,6 +40,8 @@ struct _PerlIO_funcs
 #define PERLIO_K_BUFFERED      0x00000002
 #define PERLIO_K_CANCRLF       0x00000004
 #define PERLIO_K_FASTGETS      0x00000008
+#define PERLIO_K_DUMMY         0x00000010
+#define PERLIO_K_UTF8          0x00008000
 
 /*--------------------------------------------------------------------------------------*/
 struct _PerlIO
@@ -73,16 +75,20 @@ struct _PerlIO
 #define PerlIONext(f)      (&(PerlIOBase(f)->next))
 
 /*--------------------------------------------------------------------------------------*/
-
-extern PerlIO_funcs PerlIO_unix;
-extern PerlIO_funcs PerlIO_perlio;
-extern PerlIO_funcs PerlIO_stdio;
-extern PerlIO_funcs PerlIO_crlf;
+/* Data exports - EXT rather than extern is needed for Cygwin */
+EXT PerlIO_funcs PerlIO_unix;
+EXT PerlIO_funcs PerlIO_perlio;
+EXT PerlIO_funcs PerlIO_stdio;
+EXT PerlIO_funcs PerlIO_crlf;
+EXT PerlIO_funcs PerlIO_utf8;
+EXT PerlIO_funcs PerlIO_byte;
+EXT PerlIO_funcs PerlIO_raw;
+EXT PerlIO_funcs PerlIO_pending;
 #ifdef HAS_MMAP
-extern PerlIO_funcs PerlIO_mmap;
+EXT PerlIO_funcs PerlIO_mmap;
 #endif
 
-extern PerlIO *PerlIO_allocate(void);
+extern PerlIO *PerlIO_allocate(pTHX);
 
 #if O_BINARY != O_TEXT
 #define PERLIO_STDTEXT "t"
@@ -94,7 +100,7 @@ extern PerlIO *PerlIO_allocate(void);
 /* Generic, or stub layer functions */
 
 extern IV      PerlIOBase_fileno    (PerlIO *f);
-extern IV      PerlIOBase_pushed    (PerlIO *f, const char *mode);
+extern IV      PerlIOBase_pushed    (PerlIO *f, const char *mode,const char *arg,STRLEN len);
 extern IV      PerlIOBase_popped    (PerlIO *f);
 extern SSize_t PerlIOBase_unread    (PerlIO *f, const void *vbuf, Size_t count);
 extern IV      PerlIOBase_eof       (PerlIO *f);