[asperl] integrate latest win32 branch
[p5sagit/p5-mst-13.2.git] / perlio.h
CommitLineData
760ac839 1#ifndef H_PERLIO
2#define H_PERLIO 1
3
f2d19c81 4/* Clean up (or at least document) the various possible #defines.
5 This section attempts to match the 5.003_03 Configure variables
6 onto the 5.003_02 header file values.
7 I can't figure out where USE_STDIO was supposed to be set.
8 --AD
9*/
10#ifndef USE_PERLIO
11# define PERLIO_IS_STDIO
760ac839 12#endif
f2d19c81 13
14/* Below is the 5.003_02 stuff. */
15#ifdef USE_STDIO
16# ifndef PERLIO_IS_STDIO
17# define PERLIO_IS_STDIO
18# endif
760ac839 19#else
20extern void PerlIO_init _((void));
21#endif
22
76e3520e 23#ifdef PERL_OBJECT
24
25#include "ipstdio.h"
26
27#define PerlIO_canset_cnt(f) 1
28#define PerlIO_has_base(f) 1
29#define PerlIO_has_cntptr(f) 1
30#define PerlIO_fast_gets(f) 1
31
32#define PerlIO_stdin() piStdIO->Stdin()
33#define PerlIO_stdout() piStdIO->Stdout()
34#define PerlIO_stderr() piStdIO->Stderr()
35#define PerlIO_open(x,y) piStdIO->Open((x),(y), ErrorNo())
36#define PerlIO_close(f) piStdIO->Close((f), ErrorNo())
37#define PerlIO_eof(f) piStdIO->Eof((f), ErrorNo())
38#define PerlIO_error(f) piStdIO->Error((f), ErrorNo())
39#define PerlIO_clearerr(f) piStdIO->Clearerr((f), ErrorNo())
40#define PerlIO_getc(f) piStdIO->Getc((f), ErrorNo())
41#define PerlIO_get_base(f) piStdIO->GetBase((f), ErrorNo())
42#define PerlIO_get_bufsiz(f) piStdIO->GetBufsiz((f), ErrorNo())
43#define PerlIO_get_cnt(f) piStdIO->GetCnt((f), ErrorNo())
44#define PerlIO_get_ptr(f) piStdIO->GetPtr((f), ErrorNo())
45#define PerlIO_putc(f,c) piStdIO->Putc((f),(c), ErrorNo())
46#define PerlIO_puts(f,s) piStdIO->Puts((f),(s), ErrorNo())
47#define PerlIO_flush(f) piStdIO->Flush((f), ErrorNo())
48#define PerlIO_ungetc(f,c) piStdIO->Ungetc((f),(c), ErrorNo())
49#define PerlIO_fileno(f) piStdIO->Fileno((f), ErrorNo())
50#define PerlIO_fdopen(f, s) piStdIO->Fdopen((f),(s), ErrorNo())
565764a8 51#define PerlIO_reopen(p, m, f) piStdIO->Reopen((p), (m), (f), ErrorNo())
76e3520e 52#define PerlIO_read(f,buf,count) (SSize_t)piStdIO->Read((f), (buf), (count), ErrorNo())
53#define PerlIO_write(f,buf,count) piStdIO->Write((f), (buf), (count), ErrorNo())
565764a8 54#define PerlIO_setbuf(f,b) piStdIO->SetBuf((f), (b), ErrorNo())
55#define PerlIO_setvbuf(f,b,t,s) piStdIO->SetVBuf((f), (b), (t), (s), ErrorNo())
76e3520e 56#define PerlIO_set_cnt(f,c) piStdIO->SetCnt((f), (c), ErrorNo())
57#define PerlIO_set_ptrcnt(f,p,c) piStdIO->SetPtrCnt((f), (p), (c), ErrorNo())
58#define PerlIO_setlinebuf(f) piStdIO->Setlinebuf((f), ErrorNo())
59#define PerlIO_printf fprintf
60#define PerlIO_stdoutf piStdIO->Printf
61#define PerlIO_vprintf(f,fmt,a) piStdIO->Vprintf((f), ErrorNo(), (fmt),a)
62#define PerlIO_tell(f) piStdIO->Tell((f), ErrorNo())
63#define PerlIO_seek(f,o,w) piStdIO->Seek((f),(o),(w), ErrorNo())
64#define PerlIO_getpos(f,p) piStdIO->Getpos((f),(p), ErrorNo())
65#define PerlIO_setpos(f,p) piStdIO->Setpos((f),(p), ErrorNo())
66#define PerlIO_rewind(f) piStdIO->Rewind((f), ErrorNo())
67#define PerlIO_tmpfile() piStdIO->Tmpfile(ErrorNo())
68#define PerlIO_init() piStdIO->Init(ErrorNo())
69#undef init_os_extras
70#define init_os_extras() piStdIO->InitOSExtras(this)
71
72#else
760ac839 73#include "perlsdio.h"
76e3520e 74#endif
760ac839 75
76#ifndef PERLIO_IS_STDIO
77#ifdef USE_SFIO
78#include "perlsfio.h"
79#endif /* USE_SFIO */
80#endif /* PERLIO_IS_STDIO */
81
82#ifndef EOF
83#define EOF (-1)
84#endif
85
86/* This is to catch case with no stdio */
87#ifndef BUFSIZ
88#define BUFSIZ 1024
89#endif
90
91#ifndef SEEK_SET
92#define SEEK_SET 0
93#endif
94
95#ifndef SEEK_CUR
96#define SEEK_CUR 1
97#endif
98
99#ifndef SEEK_END
100#define SEEK_END 2
101#endif
102
103#ifndef PerlIO
104struct _PerlIO;
105#define PerlIO struct _PerlIO
106#endif /* No PerlIO */
107
108#ifndef Fpos_t
109#define Fpos_t long
110#endif
111
112#ifndef NEXT30_NO_ATTRIBUTE
113#ifndef HASATTRIBUTE /* disable GNU-cc attribute checking? */
114#ifdef __attribute__ /* Avoid possible redefinition errors */
115#undef __attribute__
116#endif
117#define __attribute__(attr)
f2d19c81 118#endif
760ac839 119#endif
120
121#ifndef PerlIO_stdoutf
122extern int PerlIO_stdoutf _((const char *,...))
123 __attribute__((format (printf, 1, 2)));
124#endif
125#ifndef PerlIO_puts
126extern int PerlIO_puts _((PerlIO *,const char *));
127#endif
128#ifndef PerlIO_open
129extern PerlIO * PerlIO_open _((const char *,const char *));
130#endif
131#ifndef PerlIO_close
132extern int PerlIO_close _((PerlIO *));
133#endif
134#ifndef PerlIO_eof
135extern int PerlIO_eof _((PerlIO *));
136#endif
137#ifndef PerlIO_error
138extern int PerlIO_error _((PerlIO *));
139#endif
140#ifndef PerlIO_clearerr
141extern void PerlIO_clearerr _((PerlIO *));
142#endif
143#ifndef PerlIO_getc
144extern int PerlIO_getc _((PerlIO *));
145#endif
146#ifndef PerlIO_putc
147extern int PerlIO_putc _((PerlIO *,int));
148#endif
149#ifndef PerlIO_flush
150extern int PerlIO_flush _((PerlIO *));
151#endif
152#ifndef PerlIO_ungetc
153extern int PerlIO_ungetc _((PerlIO *,int));
154#endif
155#ifndef PerlIO_fileno
156extern int PerlIO_fileno _((PerlIO *));
157#endif
158#ifndef PerlIO_fdopen
159extern PerlIO * PerlIO_fdopen _((int, const char *));
160#endif
161#ifndef PerlIO_importFILE
162extern PerlIO * PerlIO_importFILE _((FILE *,int));
163#endif
164#ifndef PerlIO_exportFILE
165extern FILE * PerlIO_exportFILE _((PerlIO *,int));
166#endif
167#ifndef PerlIO_findFILE
168extern FILE * PerlIO_findFILE _((PerlIO *));
169#endif
170#ifndef PerlIO_releaseFILE
171extern void PerlIO_releaseFILE _((PerlIO *,FILE *));
172#endif
173#ifndef PerlIO_read
5b54f415 174extern SSize_t PerlIO_read _((PerlIO *,void *,Size_t));
760ac839 175#endif
176#ifndef PerlIO_write
5b54f415 177extern SSize_t PerlIO_write _((PerlIO *,const void *,Size_t));
760ac839 178#endif
179#ifndef PerlIO_setlinebuf
f2d19c81 180extern void PerlIO_setlinebuf _((PerlIO *));
760ac839 181#endif
182#ifndef PerlIO_printf
183extern int PerlIO_printf _((PerlIO *, const char *,...))
f2d19c81 184 __attribute__((format (printf, 2, 3)));
760ac839 185#endif
186#ifndef PerlIO_sprintf
187extern int PerlIO_sprintf _((char *, int, const char *,...))
f2d19c81 188 __attribute__((format (printf, 3, 4)));
760ac839 189#endif
190#ifndef PerlIO_vprintf
f2d19c81 191extern int PerlIO_vprintf _((PerlIO *, const char *, va_list));
760ac839 192#endif
193#ifndef PerlIO_tell
194extern long PerlIO_tell _((PerlIO *));
195#endif
196#ifndef PerlIO_seek
197extern int PerlIO_seek _((PerlIO *,off_t,int));
198#endif
199#ifndef PerlIO_rewind
200extern void PerlIO_rewind _((PerlIO *));
201#endif
202#ifndef PerlIO_has_base
f2d19c81 203extern int PerlIO_has_base _((PerlIO *));
760ac839 204#endif
205#ifndef PerlIO_has_cntptr
f2d19c81 206extern int PerlIO_has_cntptr _((PerlIO *));
760ac839 207#endif
208#ifndef PerlIO_fast_gets
f2d19c81 209extern int PerlIO_fast_gets _((PerlIO *));
760ac839 210#endif
211#ifndef PerlIO_canset_cnt
f2d19c81 212extern int PerlIO_canset_cnt _((PerlIO *));
760ac839 213#endif
214#ifndef PerlIO_get_ptr
888911fc 215extern STDCHAR * PerlIO_get_ptr _((PerlIO *));
760ac839 216#endif
217#ifndef PerlIO_get_cnt
f2d19c81 218extern int PerlIO_get_cnt _((PerlIO *));
760ac839 219#endif
220#ifndef PerlIO_set_cnt
f2d19c81 221extern void PerlIO_set_cnt _((PerlIO *,int));
760ac839 222#endif
223#ifndef PerlIO_set_ptrcnt
888911fc 224extern void PerlIO_set_ptrcnt _((PerlIO *,STDCHAR *,int));
760ac839 225#endif
226#ifndef PerlIO_get_base
888911fc 227extern STDCHAR * PerlIO_get_base _((PerlIO *));
760ac839 228#endif
229#ifndef PerlIO_get_bufsiz
f2d19c81 230extern int PerlIO_get_bufsiz _((PerlIO *));
760ac839 231#endif
232#ifndef PerlIO_tmpfile
233extern PerlIO * PerlIO_tmpfile _((void));
234#endif
235#ifndef PerlIO_stdin
236extern PerlIO * PerlIO_stdin _((void));
237#endif
238#ifndef PerlIO_stdout
239extern PerlIO * PerlIO_stdout _((void));
240#endif
241#ifndef PerlIO_stderr
242extern PerlIO * PerlIO_stderr _((void));
243#endif
244#ifndef PerlIO_getpos
245extern int PerlIO_getpos _((PerlIO *,Fpos_t *));
246#endif
247#ifndef PerlIO_setpos
248extern int PerlIO_setpos _((PerlIO *,const Fpos_t *));
f2d19c81 249#endif
760ac839 250#endif /* Include guard */