summaryrefslogtreecommitdiffstats
path: root/contrib/perl5/perlio.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/perl5/perlio.c')
-rw-r--r--contrib/perl5/perlio.c596
1 files changed, 0 insertions, 596 deletions
diff --git a/contrib/perl5/perlio.c b/contrib/perl5/perlio.c
deleted file mode 100644
index 8741980..0000000
--- a/contrib/perl5/perlio.c
+++ /dev/null
@@ -1,596 +0,0 @@
-/* perlio.c
- *
- * Copyright (c) 1996-2001, Nick Ing-Simmons
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Artistic License, as specified in the README file.
- *
- */
-
-
-#define VOIDUSED 1
-#include "config.h"
-
-#define PERLIO_NOT_STDIO 0
-#if !defined(PERLIO_IS_STDIO) && !defined(USE_SFIO)
-#define PerlIO FILE
-#endif
-/*
- * This file provides those parts of PerlIO abstraction
- * which are not #defined in iperlsys.h.
- * Which these are depends on various Configure #ifdef's
- */
-
-#include "EXTERN.h"
-#define PERL_IN_PERLIO_C
-#include "perl.h"
-
-#if !defined(PERL_IMPLICIT_SYS)
-
-#ifdef PERLIO_IS_STDIO
-
-void
-PerlIO_init(void)
-{
- /* 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 */
-
-#ifdef USE_SFIO
-
-#undef HAS_FSETPOS
-#undef HAS_FGETPOS
-
-/* This section is just to make sure these functions
- get pulled in from libsfio.a
-*/
-
-#undef PerlIO_tmpfile
-PerlIO *
-PerlIO_tmpfile(void)
-{
- return sftmp(0);
-}
-
-void
-PerlIO_init(void)
-{
- /* Force this file to be included in perl binary. Which allows
- * this file to force inclusion of other functions that may be
- * required by loadable extensions e.g. for FileHandle::tmpfile
- */
-
- /* Hack
- * sfio does its own 'autoflush' on stdout in common cases.
- * Flush results in a lot of lseek()s to regular files and
- * lot of small writes to pipes.
- */
- sfset(sfstdout,SF_SHARE,0);
-}
-
-#else /* USE_SFIO */
-
-/* Implement all the PerlIO interface using stdio.
- - this should be only file to include <stdio.h>
-*/
-
-#undef PerlIO_stderr
-PerlIO *
-PerlIO_stderr(void)
-{
- return (PerlIO *) stderr;
-}
-
-#undef PerlIO_stdin
-PerlIO *
-PerlIO_stdin(void)
-{
- return (PerlIO *) stdin;
-}
-
-#undef PerlIO_stdout
-PerlIO *
-PerlIO_stdout(void)
-{
- return (PerlIO *) stdout;
-}
-
-#undef PerlIO_fast_gets
-int
-PerlIO_fast_gets(PerlIO *f)
-{
-#if defined(USE_STDIO_PTR) && defined(STDIO_PTR_LVALUE) && defined(STDIO_CNT_LVALUE)
- return 1;
-#else
- return 0;
-#endif
-}
-
-#undef PerlIO_has_cntptr
-int
-PerlIO_has_cntptr(PerlIO *f)
-{
-#if defined(USE_STDIO_PTR)
- return 1;
-#else
- return 0;
-#endif
-}
-
-#undef PerlIO_canset_cnt
-int
-PerlIO_canset_cnt(PerlIO *f)
-{
-#if defined(USE_STDIO_PTR) && defined(STDIO_CNT_LVALUE)
- return 1;
-#else
- return 0;
-#endif
-}
-
-#undef PerlIO_set_cnt
-void
-PerlIO_set_cnt(PerlIO *f, int cnt)
-{
- dTHX;
- if (cnt < -1 && ckWARN_d(WARN_INTERNAL))
- Perl_warner(aTHX_ WARN_INTERNAL, "Setting cnt to %d\n",cnt);
-#if defined(USE_STDIO_PTR) && defined(STDIO_CNT_LVALUE)
- FILE_cnt(f) = cnt;
-#else
- Perl_croak(aTHX_ "Cannot set 'cnt' of FILE * on this system");
-#endif
-}
-
-#undef PerlIO_set_ptrcnt
-void
-PerlIO_set_ptrcnt(PerlIO *f, STDCHAR *ptr, int cnt)
-{
- dTHX;
-#ifdef FILE_bufsiz
- STDCHAR *e = FILE_base(f) + FILE_bufsiz(f);
- int ec = e - ptr;
- if (ptr > e + 1 && ckWARN_d(WARN_INTERNAL))
- Perl_warner(aTHX_ WARN_INTERNAL, "Setting ptr %p > end+1 %p\n", ptr, e + 1);
- if (cnt != ec && ckWARN_d(WARN_INTERNAL))
- Perl_warner(aTHX_ WARN_INTERNAL, "Setting cnt to %d, ptr implies %d\n",cnt,ec);
-#endif
-#if defined(USE_STDIO_PTR) && defined(STDIO_PTR_LVALUE)
- FILE_ptr(f) = ptr;
-#else
- Perl_croak(aTHX_ "Cannot set 'ptr' of FILE * on this system");
-#endif
-#if defined(USE_STDIO_PTR) && defined(STDIO_CNT_LVALUE) && defined (STDIO_PTR_LVAL_NOCHANGE_CNT)
- FILE_cnt(f) = cnt;
-#else
-#if defined(STDIO_PTR_LVAL_SETS_CNT)
- assert (FILE_cnt(f) == cnt);
-#else
- Perl_croak(aTHX_ "Cannot set 'cnt' of FILE * on this system when setting 'ptr'");
-#endif
-#endif
-}
-
-#undef PerlIO_get_cnt
-int
-PerlIO_get_cnt(PerlIO *f)
-{
-#ifdef FILE_cnt
- return FILE_cnt(f);
-#else
- dTHX;
- Perl_croak(aTHX_ "Cannot get 'cnt' of FILE * on this system");
- return -1;
-#endif
-}
-
-#undef PerlIO_get_bufsiz
-int
-PerlIO_get_bufsiz(PerlIO *f)
-{
-#ifdef FILE_bufsiz
- return FILE_bufsiz(f);
-#else
- dTHX;
- Perl_croak(aTHX_ "Cannot get 'bufsiz' of FILE * on this system");
- return -1;
-#endif
-}
-
-#undef PerlIO_get_ptr
-STDCHAR *
-PerlIO_get_ptr(PerlIO *f)
-{
-#ifdef FILE_ptr
- return FILE_ptr(f);
-#else
- dTHX;
- Perl_croak(aTHX_ "Cannot get 'ptr' of FILE * on this system");
- return NULL;
-#endif
-}
-
-#undef PerlIO_get_base
-STDCHAR *
-PerlIO_get_base(PerlIO *f)
-{
-#ifdef FILE_base
- return FILE_base(f);
-#else
- dTHX;
- Perl_croak(aTHX_ "Cannot get 'base' of FILE * on this system");
- return NULL;
-#endif
-}
-
-#undef PerlIO_has_base
-int
-PerlIO_has_base(PerlIO *f)
-{
-#ifdef FILE_base
- return 1;
-#else
- return 0;
-#endif
-}
-
-#undef PerlIO_puts
-int
-PerlIO_puts(PerlIO *f, const char *s)
-{
- return fputs(s,f);
-}
-
-#undef PerlIO_open
-PerlIO *
-PerlIO_open(const char *path, const char *mode)
-{
- return fopen(path,mode);
-}
-
-#undef PerlIO_fdopen
-PerlIO *
-PerlIO_fdopen(int fd, const char *mode)
-{
- return fdopen(fd,mode);
-}
-
-#undef PerlIO_reopen
-PerlIO *
-PerlIO_reopen(const char *name, const char *mode, PerlIO *f)
-{
- return freopen(name,mode,f);
-}
-
-#undef PerlIO_close
-int
-PerlIO_close(PerlIO *f)
-{
- return fclose(f);
-}
-
-#undef PerlIO_eof
-int
-PerlIO_eof(PerlIO *f)
-{
- return feof(f);
-}
-
-#undef PerlIO_getname
-char *
-PerlIO_getname(PerlIO *f, char *buf)
-{
-#ifdef VMS
- return fgetname(f,buf);
-#else
- dTHX;
- Perl_croak(aTHX_ "Don't know how to get file name");
- return NULL;
-#endif
-}
-
-#undef PerlIO_getc
-int
-PerlIO_getc(PerlIO *f)
-{
- return fgetc(f);
-}
-
-#undef PerlIO_error
-int
-PerlIO_error(PerlIO *f)
-{
- return ferror(f);
-}
-
-#undef PerlIO_clearerr
-void
-PerlIO_clearerr(PerlIO *f)
-{
- clearerr(f);
-}
-
-#undef PerlIO_flush
-int
-PerlIO_flush(PerlIO *f)
-{
- return Fflush(f);
-}
-
-#undef PerlIO_fileno
-int
-PerlIO_fileno(PerlIO *f)
-{
- return fileno(f);
-}
-
-#undef PerlIO_setlinebuf
-void
-PerlIO_setlinebuf(PerlIO *f)
-{
-#ifdef HAS_SETLINEBUF
- setlinebuf(f);
-#else
-# ifdef __BORLANDC__ /* Borland doesn't like NULL size for _IOLBF */
- setvbuf(f, Nullch, _IOLBF, BUFSIZ);
-# else
- setvbuf(f, Nullch, _IOLBF, 0);
-# endif
-#endif
-}
-
-#undef PerlIO_putc
-int
-PerlIO_putc(PerlIO *f, int ch)
-{
- return putc(ch,f);
-}
-
-#undef PerlIO_ungetc
-int
-PerlIO_ungetc(PerlIO *f, int ch)
-{
- return ungetc(ch,f);
-}
-
-#undef PerlIO_read
-SSize_t
-PerlIO_read(PerlIO *f, void *buf, Size_t count)
-{
- return fread(buf,1,count,f);
-}
-
-#undef PerlIO_write
-SSize_t
-PerlIO_write(PerlIO *f, const void *buf, Size_t count)
-{
- return fwrite1(buf,1,count,f);
-}
-
-#undef PerlIO_vprintf
-int
-PerlIO_vprintf(PerlIO *f, const char *fmt, va_list ap)
-{
- return vfprintf(f,fmt,ap);
-}
-
-#undef PerlIO_tell
-Off_t
-PerlIO_tell(PerlIO *f)
-{
-#if defined(USE_64_BIT_STDIO) && defined(HAS_FTELLO) && !defined(USE_FTELL64)
- return ftello(f);
-#else
- return ftell(f);
-#endif
-}
-
-#undef PerlIO_seek
-int
-PerlIO_seek(PerlIO *f, Off_t offset, int whence)
-{
-#if defined(USE_64_BIT_STDIO) && defined(HAS_FSEEKO) && !defined(USE_FSEEK64)
- return fseeko(f,offset,whence);
-#else
- return fseek(f,offset,whence);
-#endif
-}
-
-#undef PerlIO_rewind
-void
-PerlIO_rewind(PerlIO *f)
-{
- rewind(f);
-}
-
-#undef PerlIO_printf
-int
-PerlIO_printf(PerlIO *f,const char *fmt,...)
-{
- va_list ap;
- int result;
- va_start(ap,fmt);
- result = vfprintf(f,fmt,ap);
- va_end(ap);
- return result;
-}
-
-#undef PerlIO_stdoutf
-int
-PerlIO_stdoutf(const char *fmt,...)
-{
- va_list ap;
- int result;
- va_start(ap,fmt);
- result = PerlIO_vprintf(PerlIO_stdout(),fmt,ap);
- va_end(ap);
- return result;
-}
-
-#undef PerlIO_tmpfile
-PerlIO *
-PerlIO_tmpfile(void)
-{
- return tmpfile();
-}
-
-#undef PerlIO_importFILE
-PerlIO *
-PerlIO_importFILE(FILE *f, int fl)
-{
- return f;
-}
-
-#undef PerlIO_exportFILE
-FILE *
-PerlIO_exportFILE(PerlIO *f, int fl)
-{
- return f;
-}
-
-#undef PerlIO_findFILE
-FILE *
-PerlIO_findFILE(PerlIO *f)
-{
- return f;
-}
-
-#undef PerlIO_releaseFILE
-void
-PerlIO_releaseFILE(PerlIO *p, FILE *f)
-{
-}
-
-void
-PerlIO_init(void)
-{
- /* 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
- */
-}
-
-#endif /* USE_SFIO */
-#endif /* PERLIO_IS_STDIO */
-
-#ifndef HAS_FSETPOS
-#undef PerlIO_setpos
-int
-#ifdef USE_SFIO
-PerlIO_setpos(PerlIO *f, const Off_t *pos)
-#else
-PerlIO_setpos(PerlIO *f, const Fpos_t *pos)
-#endif
-{
- return PerlIO_seek(f,*pos,0);
-}
-#else
-#ifndef PERLIO_IS_STDIO
-#undef PerlIO_setpos
-int
-PerlIO_setpos(PerlIO *f, const Fpos_t *pos)
-{
-#if defined(USE_64_BIT_STDIO) && defined(USE_FSETPOS64)
- return fsetpos64(f, pos);
-#else
- return fsetpos(f, pos);
-#endif
-}
-#endif
-#endif
-
-#ifndef HAS_FGETPOS
-#undef PerlIO_getpos
-int
-#ifdef USE_SFIO
-PerlIO_getpos(PerlIO *f, Off_t *pos)
-{
- *pos = PerlIO_seek(f,0,0);
- return 0;
-}
-#else
-PerlIO_getpos(PerlIO *f, Fpos_t *pos)
-{
- *pos = PerlIO_tell(f);
- return 0;
-}
-#endif
-#else
-#ifndef PERLIO_IS_STDIO
-#undef PerlIO_getpos
-int
-PerlIO_getpos(PerlIO *f, Fpos_t *pos)
-{
-#if defined(USE_64_BIT_STDIO) && defined(USE_FSETPOS64)
- return fgetpos64(f, pos);
-#else
- return fgetpos(f, pos);
-#endif
-}
-#endif
-#endif
-
-#if (defined(PERLIO_IS_STDIO) || !defined(USE_SFIO)) && !defined(HAS_VPRINTF)
-
-int
-vprintf(char *pat, char *args)
-{
- _doprnt(pat, args, stdout);
- return 0; /* wrong, but perl doesn't use the return value */
-}
-
-int
-vfprintf(FILE *fd, char *pat, char *args)
-{
- _doprnt(pat, args, fd);
- return 0; /* wrong, but perl doesn't use the return value */
-}
-
-#endif
-
-#ifndef PerlIO_vsprintf
-int
-PerlIO_vsprintf(char *s, int n, const char *fmt, va_list ap)
-{
- int val = vsprintf(s, fmt, ap);
- if (n >= 0)
- {
- if (strlen(s) >= (STRLEN)n)
- {
- dTHX;
- PerlIO_puts(Perl_error_log,"panic: sprintf overflow - memory corrupted!\n");
- my_exit(1);
- }
- }
- return val;
-}
-#endif
-
-#ifndef PerlIO_sprintf
-int
-PerlIO_sprintf(char *s, int n, const char *fmt,...)
-{
- va_list ap;
- int result;
- va_start(ap,fmt);
- result = PerlIO_vsprintf(s, n, fmt, ap);
- va_end(ap);
- return result;
-}
-#endif
-
-#endif /* !PERL_IMPLICIT_SYS */
-
OpenPOWER on IntegriCloud