-#define PerlIO_has_base(f) 0
-#endif
-
-#define PerlIO_stdin() \
- (*PL_piStdIO->pStdin)(PL_piStdIO)
-#define PerlIO_stdout() \
- (*PL_piStdIO->pStdout)(PL_piStdIO)
-#define PerlIO_stderr() \
- (*PL_piStdIO->pStderr)(PL_piStdIO)
-#define PerlIO_open(x,y) \
- (*PL_piStdIO->pOpen)(PL_piStdIO, (x),(y))
-#define PerlIO_close(f) \
- (*PL_piStdIO->pClose)(PL_piStdIO, (f))
-#define PerlIO_eof(f) \
- (*PL_piStdIO->pEof)(PL_piStdIO, (f))
-#define PerlIO_error(f) \
- (*PL_piStdIO->pError)(PL_piStdIO, (f))
-#define PerlIO_clearerr(f) \
- (*PL_piStdIO->pClearerr)(PL_piStdIO, (f))
-#define PerlIO_getc(f) \
- (*PL_piStdIO->pGetc)(PL_piStdIO, (f))
-#define PerlIO_get_base(f) \
- (*PL_piStdIO->pGetBase)(PL_piStdIO, (f))
-#define PerlIO_get_bufsiz(f) \
- (*PL_piStdIO->pGetBufsiz)(PL_piStdIO, (f))
-#define PerlIO_get_cnt(f) \
- (*PL_piStdIO->pGetCnt)(PL_piStdIO, (f))
-#define PerlIO_get_ptr(f) \
- (*PL_piStdIO->pGetPtr)(PL_piStdIO, (f))
-#define PerlIO_putc(f,c) \
- (*PL_piStdIO->pPutc)(PL_piStdIO, (f),(c))
-#define PerlIO_puts(f,s) \
- (*PL_piStdIO->pPuts)(PL_piStdIO, (f),(s))
-#define PerlIO_flush(f) \
- (*PL_piStdIO->pFlush)(PL_piStdIO, (f))
-#define PerlIO_gets(s, n, fp) \
- (*PL_piStdIO->pGets)(PL_piStdIO, (fp), s, n)
-#define PerlIO_ungetc(f,c) \
- (*PL_piStdIO->pUngetc)(PL_piStdIO, (f),(c))
-#define PerlIO_fileno(f) \
- (*PL_piStdIO->pFileno)(PL_piStdIO, (f))
-#define PerlIO_fdopen(f, s) \
- (*PL_piStdIO->pFdopen)(PL_piStdIO, (f),(s))
-#define PerlIO_reopen(p, m, f) \
- (*PL_piStdIO->pReopen)(PL_piStdIO, (p), (m), (f))
-#define PerlIO_read(f,buf,count) \
- (SSize_t)(*PL_piStdIO->pRead)(PL_piStdIO, (f), (buf), (count))
-#define PerlIO_write(f,buf,count) \
- (*PL_piStdIO->pWrite)(PL_piStdIO, (f), (buf), (count))
-#define PerlIO_setbuf(f,b) \
- (*PL_piStdIO->pSetBuf)(PL_piStdIO, (f), (b))
-#define PerlIO_setvbuf(f,b,t,s) \
- (*PL_piStdIO->pSetVBuf)(PL_piStdIO, (f),(b),(t),(s))
-#define PerlIO_set_cnt(f,c) \
- (*PL_piStdIO->pSetCnt)(PL_piStdIO, (f), (c))
-#define PerlIO_set_ptrcnt(f,p,c) \
- (*PL_piStdIO->pSetPtrCnt)(PL_piStdIO, (f), (p), (c))
-#define PerlIO_setlinebuf(f) \
- (*PL_piStdIO->pSetlinebuf)(PL_piStdIO, (f))
-#define PerlIO_printf fprintf
-#define PerlIO_stdoutf *PL_piStdIO->pPrintf
-#define PerlIO_vprintf(f,fmt,a) \
- (*PL_piStdIO->pVprintf)(PL_piStdIO, (f),(fmt),a)
-#define PerlIO_tell(f) \
- (*PL_piStdIO->pTell)(PL_piStdIO, (f))
-#define PerlIO_seek(f,o,w) \
- (*PL_piStdIO->pSeek)(PL_piStdIO, (f),(o),(w))
-#define PerlIO_getpos(f,p) \
- (*PL_piStdIO->pGetpos)(PL_piStdIO, (f),(p))
-#define PerlIO_setpos(f,p) \
- (*PL_piStdIO->pSetpos)(PL_piStdIO, (f),(p))
-#define PerlIO_rewind(f) \
- (*PL_piStdIO->pRewind)(PL_piStdIO, (f))
-#define PerlIO_tmpfile() \
- (*PL_piStdIO->pTmpfile)(PL_piStdIO)
-#define PerlIO_init() \
- (*PL_piStdIO->pInit)(PL_piStdIO)
+#define PerlSIO_has_base(f) 0
+#endif
+
+/* Now take FILE * via function table */
+
+#define PerlSIO_stdin \
+ (*PL_StdIO->pStdin)(PL_StdIO)
+#define PerlSIO_stdout \
+ (*PL_StdIO->pStdout)(PL_StdIO)
+#define PerlSIO_stderr \
+ (*PL_StdIO->pStderr)(PL_StdIO)
+#define PerlSIO_fopen(x,y) \
+ (*PL_StdIO->pOpen)(PL_StdIO, (x),(y))
+#define PerlSIO_fclose(f) \
+ (*PL_StdIO->pClose)(PL_StdIO, (f))
+#define PerlSIO_feof(f) \
+ (*PL_StdIO->pEof)(PL_StdIO, (f))
+#define PerlSIO_ferror(f) \
+ (*PL_StdIO->pError)(PL_StdIO, (f))
+#define PerlSIO_clearerr(f) \
+ (*PL_StdIO->pClearerr)(PL_StdIO, (f))
+#define PerlSIO_fgetc(f) \
+ (*PL_StdIO->pGetc)(PL_StdIO, (f))
+#define PerlSIO_get_base(f) \
+ (*PL_StdIO->pGetBase)(PL_StdIO, (f))
+#define PerlSIO_get_bufsiz(f) \
+ (*PL_StdIO->pGetBufsiz)(PL_StdIO, (f))
+#define PerlSIO_get_cnt(f) \
+ (*PL_StdIO->pGetCnt)(PL_StdIO, (f))
+#define PerlSIO_get_ptr(f) \
+ (*PL_StdIO->pGetPtr)(PL_StdIO, (f))
+#define PerlSIO_fputc(c,f) \
+ (*PL_StdIO->pPutc)(PL_StdIO, (c),(f))
+#define PerlSIO_fputs(s,f) \
+ (*PL_StdIO->pPuts)(PL_StdIO, (s),(f))
+#define PerlSIO_fflush(f) \
+ (*PL_StdIO->pFlush)(PL_StdIO, (f))
+#define PerlSIO_fgets(s, n, f) \
+ (*PL_StdIO->pGets)(PL_StdIO, s, n, (f))
+#define PerlSIO_ungetc(c,f) \
+ (*PL_StdIO->pUngetc)(PL_StdIO, (c),(f))
+#define PerlSIO_fileno(f) \
+ (*PL_StdIO->pFileno)(PL_StdIO, (f))
+#define PerlSIO_fdopen(f, s) \
+ (*PL_StdIO->pFdopen)(PL_StdIO, (f),(s))
+#define PerlSIO_freopen(p, m, f) \
+ (*PL_StdIO->pReopen)(PL_StdIO, (p), (m), (f))
+#define PerlSIO_fread(buf,sz,count,f) \
+ (*PL_StdIO->pRead)(PL_StdIO, (buf), (sz), (count), (f))
+#define PerlSIO_fwrite(buf,sz,count,f) \
+ (*PL_StdIO->pWrite)(PL_StdIO, (buf), (sz), (count), (f))
+#define PerlSIO_setbuf(f,b) \
+ (*PL_StdIO->pSetBuf)(PL_StdIO, (f), (b))
+#define PerlSIO_setvbuf(f,b,t,s) \
+ (*PL_StdIO->pSetVBuf)(PL_StdIO, (f),(b),(t),(s))
+#define PerlSIO_set_cnt(f,c) \
+ (*PL_StdIO->pSetCnt)(PL_StdIO, (f), (c))
+#define PerlSIO_set_ptr(f,p) \
+ (*PL_StdIO->pSetPtr)(PL_StdIO, (f), (p))
+#define PerlSIO_setlinebuf(f) \
+ (*PL_StdIO->pSetlinebuf)(PL_StdIO, (f))
+#define PerlSIO_printf Perl_fprintf_nocontext
+#define PerlSIO_stdoutf Perl_printf_nocontext
+#define PerlSIO_vprintf(f,fmt,a) \
+ (*PL_StdIO->pVprintf)(PL_StdIO, (f),(fmt),a)
+#define PerlSIO_ftell(f) \
+ (*PL_StdIO->pTell)(PL_StdIO, (f))
+#define PerlSIO_fseek(f,o,w) \
+ (*PL_StdIO->pSeek)(PL_StdIO, (f),(o),(w))
+#define PerlSIO_fgetpos(f,p) \
+ (*PL_StdIO->pGetpos)(PL_StdIO, (f),(p))
+#define PerlSIO_fsetpos(f,p) \
+ (*PL_StdIO->pSetpos)(PL_StdIO, (f),(p))
+#define PerlSIO_rewind(f) \
+ (*PL_StdIO->pRewind)(PL_StdIO, (f))
+#define PerlSIO_tmpfile() \
+ (*PL_StdIO->pTmpfile)(PL_StdIO)
+#define PerlSIO_init() \
+ (*PL_StdIO->pInit)(PL_StdIO)