summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--perlio.c24
-rw-r--r--perlio.h54
-rw-r--r--perlsdio.h127
-rw-r--r--pp_ctl.c4
-rw-r--r--sv.c10
5 files changed, 16 insertions, 203 deletions
diff --git a/perlio.c b/perlio.c
index b5d5959a32..ae8cbc9423 100644
--- a/perlio.c
+++ b/perlio.c
@@ -338,29 +338,6 @@ Perl_boot_core_PerlIO(pTHX)
#endif
-#ifdef PERLIO_IS_STDIO
-
-void
-PerlIO_init(pTHX)
-{
- PERL_UNUSED_CONTEXT;
- /*
- * Does nothing (yet) except force this file to be included in perl
- * binary. That allows this file to force inclusion of other functions
- * that may be required by loadable extensions e.g. for
- * FileHandle::tmpfile
- */
-}
-
-#undef PerlIO_tmpfile
-PerlIO *
-PerlIO_tmpfile(void)
-{
- return tmpfile();
-}
-
-#else /* PERLIO_IS_STDIO */
-
/*======================================================================================*/
/*
* Implement all the PerlIO interface ourselves.
@@ -5093,7 +5070,6 @@ Perl_PerlIO_restore_errno(pTHX_ PerlIO *f)
#undef HAS_FSETPOS
#undef HAS_FGETPOS
-#endif /* PERLIO_IS_STDIO */
/*======================================================================================*/
/*
diff --git a/perlio.h b/perlio.h
index 8e700fee83..1a3d480f43 100644
--- a/perlio.h
+++ b/perlio.h
@@ -13,41 +13,23 @@
/*
Interface for perl to IO functions.
There is a hierarchy of Configure determined #define controls:
- USE_STDIO - forces PerlIO_xxx() to be #define-d onto stdio functions.
- This is used for conservative
- builds - "just like perl5.00X used to be".
- This dominates over the others.
+ USE_STDIO - No longer available via Configure. Formerly forced
+ PerlIO_xxx() to be #define-d onto stdio functions.
+ Now generates compile-time error.
USE_PERLIO - The primary Configure variable that enables PerlIO.
- If USE_PERLIO is _NOT_ set
- then USE_STDIO above will be set to be conservative.
PerlIO_xxx() are real functions
defined in perlio.c which implement extra functionality
required for utf8 support.
- One further note - the table-of-functions scheme controlled
- by PERL_IMPLICIT_SYS turns on USE_PERLIO so that iperlsys.h can
- #define PerlIO_xxx() to go via the function table, without having
- to #undef them from (say) stdio forms.
-
*/
-#if defined(PERL_IMPLICIT_SYS)
-#ifndef USE_PERLIO
-#ifndef NETWARE
-/* # define USE_PERLIO */
-#endif
-#endif
-#endif
-
#ifndef USE_PERLIO
# define USE_STDIO
#endif
#ifdef USE_STDIO
-# ifndef PERLIO_IS_STDIO
-# define PERLIO_IS_STDIO
-# endif
+# error "stdio is no longer supported as the default base layer -- use perlio."
#endif
/* -------------------- End of Configure controls ---------------------------- */
@@ -71,11 +53,6 @@
#undef O_BINARY
#endif
-#ifdef PERLIO_IS_STDIO
-/* #define PerlIO_xxxx() as equivalent stdio function */
-#include "perlsdio.h"
-#endif /* PERLIO_IS_STDIO */
-
#ifndef PerlIO
/* ----------- PerlIO implementation ---------- */
/* PerlIO not #define-d to something else - define the implementation */
@@ -111,27 +88,24 @@ PERL_CALLCONV void PerlIO_clone(pTHX_ PerlInterpreter *proto,
/* ----------- End of implementation choices ---------- */
-#ifndef PERLIO_IS_STDIO
-/* Not using stdio _directly_ as PerlIO */
-
/* We now need to determine what happens if source trys to use stdio.
* There are three cases based on PERLIO_NOT_STDIO which XS code
* can set how it wants.
*/
-# ifdef PERL_CORE
+#ifdef PERL_CORE
/* Make a choice for perl core code
- currently this is set to try and catch lingering raw stdio calls.
This is a known issue with some non UNIX ports which still use
"native" stdio features.
*/
-# ifndef PERLIO_NOT_STDIO
-# define PERLIO_NOT_STDIO 1
-# endif
- #else
-# ifndef PERLIO_NOT_STDIO
-# define PERLIO_NOT_STDIO 0
-# endif
+# ifndef PERLIO_NOT_STDIO
+# define PERLIO_NOT_STDIO 1
+# endif
+#else
+# ifndef PERLIO_NOT_STDIO
+# define PERLIO_NOT_STDIO 0
+# endif
#endif
#ifdef PERLIO_NOT_STDIO
@@ -154,7 +128,6 @@ PERL_CALLCONV void PerlIO_clone(pTHX_ PerlInterpreter *proto,
*/
#include "fakesdio.h"
#endif /* ifndef PERLIO_NOT_STDIO */
-#endif /* PERLIO_IS_STDIO */
/* ----------- fill in things that have not got #define'd ---------- */
@@ -331,7 +304,7 @@ PERL_CALLCONV int PerlIO_setpos(PerlIO *, SV *);
#ifndef PerlIO_fdupopen
PERL_CALLCONV PerlIO *PerlIO_fdupopen(pTHX_ PerlIO *, CLONE_PARAMS *, int);
#endif
-#if !defined(PerlIO_modestr) && !defined(PERLIO_IS_STDIO)
+#if !defined(PerlIO_modestr)
PERL_CALLCONV char *PerlIO_modestr(PerlIO *, char *buf);
#endif
#ifndef PerlIO_isutf8
@@ -360,7 +333,6 @@ PERL_CALLCONV void PerlIO_debug(const char *fmt, ...)
__attribute__format__(__printf__, 1, 2);
typedef struct PerlIO_list_s PerlIO_list_t;
-
#endif
END_EXTERN_C
diff --git a/perlsdio.h b/perlsdio.h
index 351836128c..2d6b22ebbf 100644
--- a/perlsdio.h
+++ b/perlsdio.h
@@ -8,133 +8,12 @@
*
*/
-#ifdef PERLIO_IS_STDIO
-
-#ifdef NETWARE
- #include "nwstdio.h"
-#else
-
-/*
- * This file #define-s the PerlIO_xxx abstraction onto stdio functions.
- * Make this as close to original stdio as possible.
- */
-#define PerlIO FILE
-#define PerlIO_stderr() PerlSIO_stderr
-#define PerlIO_stdout() PerlSIO_stdout
-#define PerlIO_stdin() PerlSIO_stdin
-
-#define PerlIO_isutf8(f) 0
-
-#define PerlIO_printf PerlSIO_printf
-#define PerlIO_stdoutf PerlSIO_stdoutf
-#define PerlIO_vprintf(f,fmt,a) PerlSIO_vprintf(f,fmt,a)
-#define PerlIO_write(f,buf,count) PerlSIO_fwrite(buf,1,count,f)
-#define PerlIO_unread(f,buf,count) (-1)
-#define PerlIO_open PerlSIO_fopen
-#define PerlIO_fdopen PerlSIO_fdopen
-#define PerlIO_reopen PerlSIO_freopen
-#define PerlIO_close(f) PerlSIO_fclose(f)
-#define PerlIO_puts(f,s) PerlSIO_fputs(s,f)
-#define PerlIO_putc(f,c) PerlSIO_fputc(c,f)
-#if defined(__VMS)
- /* Unusual definition of ungetc() here to accommodate fast_sv_gets()'
- * belief that it can mix getc/ungetc with reads from stdio buffer */
-START_EXTERN_C
- int decc$ungetc(int __c, FILE *__stream);
-END_EXTERN_C
-# define PerlIO_ungetc(f,c) ((c) == EOF ? EOF : \
- ((*(f) && !((*(f))->_flag & _IONBF) && \
- ((*(f))->_ptr > (*(f))->_base)) ? \
- ((*(f))->_cnt++, *(--(*(f))->_ptr) = (c)) : decc$ungetc(c,f)))
-#else
-# define PerlIO_ungetc(f,c) PerlSIO_ungetc(c,f)
-#endif
-#define PerlIO_getc(f) PerlSIO_fgetc(f)
-#define PerlIO_read(f,buf,count) (SSize_t)PerlSIO_fread(buf,1,count,f)
-#define PerlIO_tell(f) PerlSIO_ftell(f)
-#define PerlIO_eof(f) PerlSIO_feof(f)
-#define PerlIO_getname(f,b) fgetname(f,b)
-#define PerlIO_error(f) PerlSIO_ferror(f)
-#define PerlIO_fileno(f) PerlSIO_fileno(f)
-#define PerlIO_clearerr(f) PerlSIO_clearerr(f)
-#define PerlIO_flush(f) PerlSIO_fflush(f)
-#define PerlIO_seek(f,o,w) PerlSIO_fseek(f,o,w)
-
-#define PerlIO_rewind(f) PerlSIO_rewind(f)
-#define PerlIO_tmpfile() PerlSIO_tmpfile()
-
-#define PerlIO_importFILE(f,fl) (f)
-#define PerlIO_exportFILE(f,fl) (f)
-#define PerlIO_findFILE(f) (f)
-#define PerlIO_releaseFILE(p,f) ((void) 0)
-
-#ifdef HAS_SETLINEBUF
-#define PerlIO_setlinebuf(f) PerlSIO_setlinebuf(f);
-#else
-#define PerlIO_setlinebuf(f) PerlSIO_setvbuf(f, NULL, _IOLBF, 0);
-#endif
-
-/* Now our interface to Configure's FILE_xxx macros */
-
-#ifdef USE_STDIO_PTR
-#define PerlIO_has_cntptr(f) 1
-#define PerlIO_get_ptr(f) PerlSIO_get_ptr(f)
-#define PerlIO_get_cnt(f) PerlSIO_get_cnt(f)
-
-#ifdef STDIO_CNT_LVALUE
-#define PerlIO_canset_cnt(f) 1
-#define PerlIO_set_cnt(f,c) PerlSIO_set_cnt(f,c)
-#ifdef STDIO_PTR_LVALUE
-#ifdef STDIO_PTR_LVAL_NOCHANGE_CNT
-#define PerlIO_fast_gets(f) 1
-#endif
-#endif /* STDIO_PTR_LVALUE */
-#else /* STDIO_CNT_LVALUE */
-#define PerlIO_canset_cnt(f) 0
-#define PerlIO_set_cnt(f,c) abort()
-#endif
-
-#ifdef STDIO_PTR_LVALUE
-#ifdef STDIO_PTR_LVAL_NOCHANGE_CNT
-#define PerlIO_set_ptrcnt(f,p,c) STMT_START {PerlSIO_set_ptr(f,p), PerlIO_set_cnt(f,c);} STMT_END
-#else
-#ifdef STDIO_PTR_LVAL_SETS_CNT
-/* assert() may pre-process to ""; potential syntax error (FILE_ptr(), ) */
-#define PerlIO_set_ptrcnt(f,p,c) STMT_START {PerlSIO_set_ptr(f,p); assert(PerlSIO_get_cnt(f) == (c));} STMT_END
-#define PerlIO_fast_gets(f) 1
-#else
-#define PerlIO_set_ptrcnt(f,p,c) abort()
-#endif
-#endif
-#endif
-
-#else /* USE_STDIO_PTR */
-
-#define PerlIO_has_cntptr(f) 0
-#define PerlIO_canset_cnt(f) 0
-#define PerlIO_get_cnt(f) (abort(),0)
-#define PerlIO_get_ptr(f) (abort(),(void *)0)
-#define PerlIO_set_cnt(f,c) abort()
-#define PerlIO_set_ptrcnt(f,p,c) abort()
-
-#endif /* USE_STDIO_PTR */
-
-#ifndef PerlIO_fast_gets
-#define PerlIO_fast_gets(f) 0
-#endif
+/* Shouldn't be possible to get here, but if we did ... */
+#ifdef PERLIO_IS_STDIO
-#ifdef FILE_base
-#define PerlIO_has_base(f) 1
-#define PerlIO_get_base(f) PerlSIO_get_base(f)
-#define PerlIO_get_bufsiz(f) PerlSIO_get_bufsiz(f)
-#else
-#define PerlIO_has_base(f) 0
-#define PerlIO_get_base(f) (abort(),(void *)0)
-#define PerlIO_get_bufsiz(f) (abort(),0)
-#endif
+# error "stdio is no longer supported as the default base layer -- use perlio."
-#endif /* NETWARE */
#endif /* PERLIO_IS_STDIO */
/*
diff --git a/pp_ctl.c b/pp_ctl.c
index ad6efc1950..d4f93b5082 100644
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -3517,11 +3517,7 @@ S_check_type_and_open(pTHX_ SV *name)
}
#endif
-#if !defined(PERLIO_IS_STDIO)
retio = PerlIO_openn(aTHX_ ":", PERL_SCRIPT_MODE, -1, 0, 0, NULL, 1, &name);
-#else
- retio = PerlIO_open(p, PERL_SCRIPT_MODE);
-#endif
#ifdef WIN32
/* EACCES stops the INC search early in pp_require to implement
feature RT #113422 */
diff --git a/sv.c b/sv.c
index 210150b23d..ae5bba3fd5 100644
--- a/sv.c
+++ b/sv.c
@@ -8245,16 +8245,6 @@ Perl_sv_gets(pTHX_ SV *const sv, PerlIO *const fp, I32 append)
amount left, otherwise this is the amount it
can hold. */
-#if defined(__VMS) && defined(PERLIO_IS_STDIO)
- /* An ungetc()d char is handled separately from the regular
- * buffer, so we getc() it back out and stuff it in the buffer.
- */
- i = PerlIO_getc(fp);
- if (i == EOF) return 0;
- *(--((*fp)->_ptr)) = (unsigned char) i;
- (*fp)->_cnt++;
-#endif
-
/* Here is some breathtakingly efficient cheating */
/* When you read the following logic resist the urge to think