diff options
author | Perl 5 Porters <perl5-porters@africa.nicoh.com> | 1997-01-29 18:11:00 +1200 |
---|---|---|
committer | Chip Salzenberg <chip@atlantic.net> | 1997-01-29 18:11:00 +1200 |
commit | 0a753a764065f2260004b6e6975085378b850346 (patch) | |
tree | e5163ab53209cc4bf655cabaf4067f18036a9106 /win32/win32iop.h | |
parent | 4b094ceb80288fc9f7c15ae78fc662051510284d (diff) | |
download | perl-0a753a764065f2260004b6e6975085378b850346.tar.gz |
[inseparable changes from patch from perl5.003_23 to perl5.003_24]perl-5.003_24
CORE LANGUAGE CHANGES
Subject: glob defaults to $_
Date: Mon, 27 Jan 1997 03:09:13 -0500
From: Gurusamy Sarathy <gsar@engin.umich.edu>
Files: op.c opcode.pl pod/perlfunc.pod t/op/glob.t
private-msgid: <199701270809.DAA00934@aatma.engin.umich.edu>
Subject: Re: an overloading bug
Date: Sun, 26 Jan 1997 19:07:45 -0500
From: Gurusamy Sarathy <gsar@engin.umich.edu>
Files: pod/perldiag.pod pod/perlfunc.pod pp_ctl.c
private-msgid: <199701270007.TAA26525@aatma.engin.umich.edu>
CORE PORTABILITY
Subject: Win32 port
From: Gary Ng <71564.1743@compuserve.com>
Files: MANIFEST win32/*
Subject: Amiga files
Date: Sun, 26 Jan 1997 17:42:15 +0100
From: Norbert Pueschel <pueschel@imsdd.meb.uni-bonn.de>
Files: MANIFEST README.amiga hints/amigaos.sh
private-msgid: <77724712@Armageddon.meb.uni-bonn.de>
DOCUMENTATION
Subject: perldelta Fcntl enhancement
Date: Sat, 25 Jan 1997 17:05:34 +0200 (EET)
From: Jarkko Hietaniemi <jhi@cc.hut.fi>
Files: pod/perldelta.pod
private-msgid: <199701251505.RAA22159@alpha.hut.fi>
Subject: Updates to perldelta re: Fcntl, DB_File, Net::Ping
From: Paul Marquess <pmarquess@bfsec.bt.co.uk>
Files: pod/perldelta.pod
Subject: Document restrictions on gv_fetchmethod() and perl_call_sv()
From: Chip Salzenberg <chip@atlantic.net>
Files: pod/perldelta.pod pod/perlguts.pod
Subject: perldiag.pod: No comma allowed after %s
Date: Sat, 25 Jan 1997 17:41:53 +0200 (EET)
From: Jarkko Hietaniemi <Jarkko.Hietaniemi@cc.hut.fi>
Files: pod/perldiag.pod
private-msgid: <199701251541.RAA04120@alpha.hut.fi>
Subject: perlfunc.pod: localtime
Date: Sat, 25 Jan 1997 18:29:37 +0200 (EET)
From: Jarkko Hietaniemi <jhi@cc.hut.fi>
Files: pod/perlfunc.pod
private-msgid: <199701251629.SAA08114@alpha.hut.fi>
Subject: perlfunc diff: gmtime
Date: Tue, 28 Jan 1997 14:52:08 +0000
From: Peter Haworth <pmh@edison.ioppublishing.com>
Files: pod/perlfunc.pod
private-msgid: <32EE1298.7B90@edison.ioppublishing.com>
Subject: Updates to guts
Date: Sun, 26 Jan 1997 19:34:18 -0500 (EST)
From: Ilya Zakharevich <ilya@math.ohio-state.edu>
Files: pod/perlguts.pod
private-msgid: <199701270034.TAA13177@monk.mps.ohio-state.edu>
TESTS
Subject: New test op/closure.t
From: Tom Phoenix <rootbeer@teleport.com>
Files: MANIFEST t/op/closure.t
Diffstat (limited to 'win32/win32iop.h')
-rw-r--r-- | win32/win32iop.h | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/win32/win32iop.h b/win32/win32iop.h new file mode 100644 index 0000000000..7b7a521fe3 --- /dev/null +++ b/win32/win32iop.h @@ -0,0 +1,132 @@ +#ifndef WIN32IOP_H +#define WIN32IOP_H + + +/* + * Make this as close to original stdio as possible. + */ +// +// function prototypes for our own win32io layer +// +EXT int * win32_errno(); +EXT FILE* win32_stdin(void); +EXT FILE* win32_stdout(void); +EXT FILE* win32_stderr(void); +EXT int win32_ferror(FILE *fp); +EXT int win32_feof(FILE *fp); +EXT char* win32_strerror(int e); + +EXT int win32_fprintf(FILE *pf, const char *format, ...); +EXT int win32_printf(const char *format, ...); +EXT int win32_vfprintf(FILE *pf, const char *format, va_list arg); +EXT size_t win32_fread(void *buf, size_t size, size_t count, FILE *pf); +EXT size_t win32_fwrite(const void *buf, size_t size, size_t count, FILE *pf); +EXT FILE* win32_fopen(const char *path, const char *mode); +EXT FILE* win32_fdopen(int fh, const char *mode); +EXT FILE* win32_freopen(const char *path, const char *mode, FILE *pf); +EXT int win32_fclose(FILE *pf); +EXT int win32_fputs(const char *s,FILE *pf); +EXT int win32_fputc(int c,FILE *pf); +EXT int win32_ungetc(int c,FILE *pf); +EXT int win32_getc(FILE *pf); +EXT int win32_fileno(FILE *pf); +EXT void win32_clearerr(FILE *pf); +EXT int win32_fflush(FILE *pf); +EXT long win32_ftell(FILE *pf); +EXT int win32_fseek(FILE *pf,long offset,int origin); +EXT int win32_fgetpos(FILE *pf,fpos_t *p); +EXT int win32_fsetpos(FILE *pf,const fpos_t *p); +EXT void win32_rewind(FILE *pf); +EXT FILE* win32_tmpfile(void); +EXT void win32_abort(void); +EXT int win32_fstat(int fd,struct stat *bufptr); +EXT int win32_stat(const char *name,struct stat *bufptr); +EXT int win32_pipe( int *phandles, unsigned int psize, int textmode ); +EXT FILE* win32_popen( const char *command, const char *mode ); +EXT int win32_pclose( FILE *pf); +EXT int win32_setmode( int fd, int mode); +EXT long win32_lseek( int fd, long offset, int origin); +EXT long win32_tell( int fd); +EXT int win32_dup( int fd); +EXT int win32_dup2(int h1, int h2); +EXT int win32_open(const char *path, int oflag,...); +EXT int win32_close(int fd); +EXT int win32_eof(int fd); +EXT int win32_read(int fd, void *buf, unsigned int cnt); +EXT int win32_write(int fd, const void *buf, unsigned int cnt); +EXT int win32_spawnvpe(int mode, const char *cmdname, const char *const *argv, const char *const *envp); +EXT int win32_spawnle(int mode, const char *cmdname, const char *,...); + +// +// these two are win32 specific but still io related +// +int stolen_open_osfhandle(long handle, int flags); +long stolen_get_osfhandle(int fd); + +#include <win32io.h> // pull in the io sub system structure + +void * SetIOSubSystem(void *piosubsystem); +// +// the following six(6) is #define in stdio.h +// +// +#ifndef WIN32IO_IS_STDIO +#undef errno +#undef stderr +#undef stdin +#undef stdout +#undef ferror +#undef feof + +#define stderr win32_stderr() +#define stdout win32_stdout() +#define stdin win32_stdin() +#define feof(f) win32_feof(f) +#define ferror(f) win32_ferror(f) +#define errno (*win32_errno()) +#define strerror win32_strerror + +// +// redirect to our own version +// +#define fprintf win32_fprintf +#define vfprintf win32_vfprintf +#define printf win32_printf +#define fread(buf,size,count,f) win32_fread(buf,size,count,f) +#define fwrite(buf,size,count,f) win32_fwrite(buf,size,count,f) +#define fopen win32_fopen +#define fdopen win32_fdopen +#define freopen win32_freopen +#define fclose(f) win32_fclose(f) +#define fputs(s,f) win32_fputs(s,f) +#define fputc(c,f) win32_fputc(c,f) +#define ungetc(c,f) win32_ungetc(c,f) +#define getc(f) win32_getc(f) +#define fileno(f) win32_fileno(f) +#define clearerr(f) win32_clearerr(f) +#define fflush(f) win32_fflush(f) +#define ftell(f) win32_ftell(f) +#define fseek(f,o,w) win32_fseek(f,o,w) +#define fgetpos(f,p) win32_fgetpos(f,p) +#define fsetpos(f,p) win32_fsetpos(f,p) +#define rewind(f) win32_rewind(f) +#define tmpfile() win32_tmpfile() +#define abort() win32_abort() +#define fstat(fd,bufptr) win32_fstat(fd,bufptr) +#define setmode(fd,mode) win32_setmode(fd,mode) +#define lseek(fd,offset,orig) win32_lseek(fd,offset,orig) +#define tell(fd) win32_tell(fd) +#define dup(fd) win32_dup(fd) +#define dup2(fd1,fd2) win32_dup2(fd1,fd2) +#define open win32_open +#define close(fd) win32_close(fd) +#define eof(fd) win32_eof(fd) +#define read(fd,b,s) win32_read(fd,b,s) +#define write(fd,b,s) win32_write(fd,b,s) +#define _open_osfhandle stolen_open_osfhandle +#define _get_osfhandle stolen_get_osfhandle +#define spawnvpe win32_spawnvpe +#define spawnle win32_spawnle +#endif //WIN32IO_IS_STDIO + +#endif // WIN32IOP_H |