[asperl] integrate latest win32 branch
[p5sagit/p5-mst-13.2.git] / perlio.h
1 #ifndef H_PERLIO
2 #define H_PERLIO 1
3
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
12 #endif
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
19 #else
20 extern void PerlIO_init _((void));
21 #endif
22
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())
51 #define PerlIO_reopen(p, m, f)  piStdIO->Reopen((p), (m), (f), ErrorNo())
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())
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())
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
73 #include "perlsdio.h"
74 #endif
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
104 struct _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)
118 #endif
119 #endif
120
121 #ifndef PerlIO_stdoutf
122 extern int      PerlIO_stdoutf          _((const char *,...))
123                                         __attribute__((format (printf, 1, 2)));
124 #endif
125 #ifndef PerlIO_puts
126 extern int      PerlIO_puts             _((PerlIO *,const char *));
127 #endif
128 #ifndef PerlIO_open
129 extern PerlIO * PerlIO_open             _((const char *,const char *));
130 #endif
131 #ifndef PerlIO_close
132 extern int      PerlIO_close            _((PerlIO *));
133 #endif
134 #ifndef PerlIO_eof
135 extern int      PerlIO_eof              _((PerlIO *));
136 #endif
137 #ifndef PerlIO_error
138 extern int      PerlIO_error            _((PerlIO *));
139 #endif
140 #ifndef PerlIO_clearerr
141 extern void     PerlIO_clearerr         _((PerlIO *));
142 #endif
143 #ifndef PerlIO_getc
144 extern int      PerlIO_getc             _((PerlIO *));
145 #endif
146 #ifndef PerlIO_putc
147 extern int      PerlIO_putc             _((PerlIO *,int));
148 #endif
149 #ifndef PerlIO_flush
150 extern int      PerlIO_flush            _((PerlIO *));
151 #endif
152 #ifndef PerlIO_ungetc
153 extern int      PerlIO_ungetc           _((PerlIO *,int));
154 #endif
155 #ifndef PerlIO_fileno
156 extern int      PerlIO_fileno           _((PerlIO *));
157 #endif
158 #ifndef PerlIO_fdopen
159 extern PerlIO * PerlIO_fdopen           _((int, const char *));
160 #endif
161 #ifndef PerlIO_importFILE
162 extern PerlIO * PerlIO_importFILE       _((FILE *,int));
163 #endif
164 #ifndef PerlIO_exportFILE
165 extern FILE *   PerlIO_exportFILE       _((PerlIO *,int));
166 #endif
167 #ifndef PerlIO_findFILE
168 extern FILE *   PerlIO_findFILE         _((PerlIO *));
169 #endif
170 #ifndef PerlIO_releaseFILE
171 extern void     PerlIO_releaseFILE      _((PerlIO *,FILE *));
172 #endif
173 #ifndef PerlIO_read
174 extern SSize_t  PerlIO_read             _((PerlIO *,void *,Size_t));
175 #endif
176 #ifndef PerlIO_write
177 extern SSize_t  PerlIO_write            _((PerlIO *,const void *,Size_t));
178 #endif
179 #ifndef PerlIO_setlinebuf
180 extern void     PerlIO_setlinebuf       _((PerlIO *));
181 #endif
182 #ifndef PerlIO_printf
183 extern int      PerlIO_printf           _((PerlIO *, const char *,...))
184                                         __attribute__((format (printf, 2, 3)));
185 #endif
186 #ifndef PerlIO_sprintf
187 extern int      PerlIO_sprintf          _((char *, int, const char *,...))
188                                         __attribute__((format (printf, 3, 4)));
189 #endif
190 #ifndef PerlIO_vprintf
191 extern int      PerlIO_vprintf          _((PerlIO *, const char *, va_list));
192 #endif
193 #ifndef PerlIO_tell
194 extern long     PerlIO_tell             _((PerlIO *));
195 #endif
196 #ifndef PerlIO_seek
197 extern int      PerlIO_seek             _((PerlIO *,off_t,int));
198 #endif
199 #ifndef PerlIO_rewind
200 extern void     PerlIO_rewind           _((PerlIO *));
201 #endif
202 #ifndef PerlIO_has_base
203 extern int      PerlIO_has_base         _((PerlIO *));
204 #endif
205 #ifndef PerlIO_has_cntptr
206 extern int      PerlIO_has_cntptr       _((PerlIO *));
207 #endif
208 #ifndef PerlIO_fast_gets
209 extern int      PerlIO_fast_gets        _((PerlIO *));
210 #endif
211 #ifndef PerlIO_canset_cnt
212 extern int      PerlIO_canset_cnt       _((PerlIO *));
213 #endif
214 #ifndef PerlIO_get_ptr
215 extern STDCHAR * PerlIO_get_ptr         _((PerlIO *));
216 #endif
217 #ifndef PerlIO_get_cnt
218 extern int      PerlIO_get_cnt          _((PerlIO *));
219 #endif
220 #ifndef PerlIO_set_cnt
221 extern void     PerlIO_set_cnt          _((PerlIO *,int));
222 #endif
223 #ifndef PerlIO_set_ptrcnt
224 extern void     PerlIO_set_ptrcnt       _((PerlIO *,STDCHAR *,int));
225 #endif
226 #ifndef PerlIO_get_base
227 extern STDCHAR * PerlIO_get_base        _((PerlIO *));
228 #endif
229 #ifndef PerlIO_get_bufsiz
230 extern int      PerlIO_get_bufsiz       _((PerlIO *));
231 #endif
232 #ifndef PerlIO_tmpfile
233 extern PerlIO * PerlIO_tmpfile          _((void));
234 #endif
235 #ifndef PerlIO_stdin
236 extern PerlIO * PerlIO_stdin    _((void));
237 #endif
238 #ifndef PerlIO_stdout
239 extern PerlIO * PerlIO_stdout   _((void));
240 #endif
241 #ifndef PerlIO_stderr
242 extern PerlIO * PerlIO_stderr   _((void));
243 #endif
244 #ifndef PerlIO_getpos
245 extern int      PerlIO_getpos           _((PerlIO *,Fpos_t *));
246 #endif
247 #ifndef PerlIO_setpos
248 extern int      PerlIO_setpos           _((PerlIO *,const Fpos_t *));
249 #endif
250 #endif /* Include guard */