1
2/* : : generated by proto : : */
3/* : : generated from /home/gisburn/ksh93/ast_ksh_20100309/build_sparc_32bit/src/lib/libast/features/stdio by iffe version 2009-12-04 : : */
4
5#ifndef _SFSTDIO_H
6#if !defined(__PROTO__)
7#  if defined(__STDC__) || defined(__cplusplus) || defined(_proto) || defined(c_plusplus)
8#    if defined(__cplusplus)
9#      define __LINKAGE__	"C"
10#    else
11#      define __LINKAGE__
12#    endif
13#    define __STDARG__
14#    define __PROTO__(x)	x
15#    define __OTORP__(x)
16#    define __PARAM__(n,o)	n
17#    if !defined(__STDC__) && !defined(__cplusplus)
18#      if !defined(c_plusplus)
19#      	define const
20#      endif
21#      define signed
22#      define void		int
23#      define volatile
24#      define __V_		char
25#    else
26#      define __V_		void
27#    endif
28#  else
29#    define __PROTO__(x)	()
30#    define __OTORP__(x)	x
31#    define __PARAM__(n,o)	o
32#    define __LINKAGE__
33#    define __V_		char
34#    define const
35#    define signed
36#    define void		int
37#    define volatile
38#  endif
39#  define __MANGLE__	__LINKAGE__
40#  if defined(__cplusplus) || defined(c_plusplus)
41#    define __VARARG__	...
42#  else
43#    define __VARARG__
44#  endif
45#  if defined(__STDARG__)
46#    define __VA_START__(p,a)	va_start(p,a)
47#  else
48#    define __VA_START__(p,a)	va_start(p)
49#  endif
50#  if !defined(__INLINE__)
51#    if defined(__cplusplus)
52#      define __INLINE__	extern __MANGLE__ inline
53#    else
54#      if defined(_WIN32) && !defined(__GNUC__)
55#      	define __INLINE__	__inline
56#      endif
57#    endif
58#  endif
59#endif
60#if !defined(__LINKAGE__)
61#define __LINKAGE__		/* 2004-08-11 transition */
62#endif
63
64#define _SFSTDIO_H	1
65#define _sys_types	1	/* #include <sys/types.h> ok */
66#define __FILE_typedef	1
67#define _FILE_DEFINED	1
68#define _FILE_defined	1
69#define _FILEDEFED	1
70
71#ifndef __FILE_TAG
72#define __FILE_TAG	_sfio_s
73#endif
74
75#undef	FILE
76#undef	_FILE
77#undef	fpos_t
78#undef	fpos64_t
79
80typedef struct _sfio_s _sfio_FILE;
81
82#define FILE		_sfio_FILE
83#define _FILE		FILE
84
85#if !defined(__FILE) && !__CYGWIN__
86#undef	__FILE
87#define __FILE		FILE
88#endif
89
90#if defined(_AST_H) || defined(_SFIO_H)
91
92#define BUFSIZ		SF_BUFSIZE
93
94#else
95
96#ifndef BUFSIZ
97#define BUFSIZ		8192
98#endif
99
100#ifndef EOF
101#define EOF		(-1)
102#endif
103
104#ifndef NULL
105#define NULL		0
106#endif
107
108#ifndef SEEK_SET
109#define SEEK_SET	0
110#define SEEK_CUR	1
111#define SEEK_END	2
112#endif
113
114#include <ast_std.h>
115
116#include <sfio_s.h>
117
118#if __cplusplus
119#define _sf_(f)		(f)
120#else
121#define _sf_(f)		((struct _sfio_s*)(f))
122#endif
123
124#define _SF_EOF		0000200
125#define _SF_ERROR	0000400
126
127#endif
128
129#ifdef _NO_LARGEFILE64_SOURCE
130#undef _LARGEFILE64_SOURCE
131#endif
132
133#ifdef _LARGEFILE64_SOURCE
134#undef	off_t
135#endif
136
137#define fpos_t		_ast_fpos_t
138#if _typ_int64_t
139#define fpos64_t	_ast_fpos_t
140#endif
141
142typedef struct _ast_fpos_s
143{
144	intmax_t	_sf_offset;
145	unsigned char	_sf_state[64 - sizeof(intmax_t)];
146} _ast_fpos_t;
147
148#define _base		_data
149#define _ptr		_next
150#define _IOFBF		0
151#define _IONBF		1
152#define _IOLBF		2
153
154#if defined(__cplusplus) && defined(__THROW) && !defined(_UWIN)
155
156#undef	FILE
157#define FILE            FILE
158typedef struct _sfio_s FILE;
159
160#undef	strerror
161extern __MANGLE__ char*	strerror(int) __THROW;
162
163extern __MANGLE__ int	_doprnt __PROTO__((const char*, va_list, FILE*));
164extern __MANGLE__ int	_doscan __PROTO__((FILE*, const char*, va_list));
165extern __MANGLE__ int	asprintf __PROTO__((char**, const char*, ...));
166extern __MANGLE__ int	clearerr __PROTO__((FILE*));
167extern __MANGLE__ int	fclose __PROTO__((FILE*));
168extern __MANGLE__ FILE*	fdopen __PROTO__((int, const char*));
169extern __MANGLE__ int	feof __PROTO__((FILE*));
170extern __MANGLE__ int	ferror __PROTO__((FILE*));
171extern __MANGLE__ int	fflush __PROTO__((FILE*));
172extern __MANGLE__ int	fgetc __PROTO__((FILE*));
173extern __MANGLE__ int	fgetpos __PROTO__((FILE*, fpos_t*));
174extern __MANGLE__ char*	fgets __PROTO__((char*, int, FILE*));
175extern __MANGLE__ int	fileno __PROTO__((FILE*));
176extern __MANGLE__ FILE*	fopen __PROTO__((const char*, const char*));
177extern __MANGLE__ int	fprintf __PROTO__((FILE*, const char*, ...));
178extern __MANGLE__ int	fpurge __PROTO__((FILE*));
179extern __MANGLE__ int	fputc __PROTO__((int, FILE*));
180extern __MANGLE__ int	fputs __PROTO__((const char*, FILE*));
181extern __MANGLE__ size_t	fread __PROTO__((__V_*, size_t, size_t, FILE*));
182extern __MANGLE__ FILE*	freopen __PROTO__((const char*, const char*, FILE*));
183extern __MANGLE__ int	fscanf __PROTO__((FILE*, const char*, ...));
184extern __MANGLE__ int	fseek __PROTO__((FILE*, long, int));
185extern __MANGLE__ int	fseeko __PROTO__((FILE*, off_t, int));
186extern __MANGLE__ int	fsetpos __PROTO__((FILE*, const fpos_t*));
187extern __MANGLE__ long	ftell __PROTO__((FILE*));
188extern __MANGLE__ off_t	ftello __PROTO__((FILE*));
189extern __MANGLE__ size_t	fwrite __PROTO__((const __V_*, size_t, size_t, FILE*));
190extern __MANGLE__ int	getc __PROTO__((FILE*));
191extern __MANGLE__ int	getchar __PROTO__((void));
192extern __MANGLE__ char*	gets __PROTO__((char*));
193extern __MANGLE__ int	getw __PROTO__((FILE*));
194extern __MANGLE__ int	pclose __PROTO__((FILE*));
195extern __MANGLE__ FILE*	popen __PROTO__((const char*, const char*));
196extern __MANGLE__ int	printf __PROTO__((const char*, ...));
197extern __MANGLE__ int	putc __PROTO__((int, FILE*));
198extern __MANGLE__ int	putchar __PROTO__((int));
199extern __MANGLE__ int	puts __PROTO__((const char*));
200extern __MANGLE__ int	putw __PROTO__((int, FILE*));
201extern __MANGLE__ void	rewind __PROTO__((FILE*));
202extern __MANGLE__ int	scanf __PROTO__((const char*, ...));
203extern __MANGLE__ void	setbuf __PROTO__((FILE*, char*));
204extern __MANGLE__ int	setbuffer __PROTO__((FILE*, char*, int));
205extern __MANGLE__ int	setlinebuf __PROTO__((FILE*));
206extern __MANGLE__ int	setvbuf __PROTO__((FILE*, char*, int, size_t));
207extern __MANGLE__ int	snprintf __PROTO__((char*, int, const char*, ...));
208extern __MANGLE__ int	sprintf __PROTO__((char*, const char*, ...));
209extern __MANGLE__ int	sscanf __PROTO__((const char*, const char*, ...));
210extern __MANGLE__ FILE*	tmpfile __PROTO__((void));
211extern __MANGLE__ int	ungetc __PROTO__((int, FILE*));
212extern __MANGLE__ int	vasprintf __PROTO__((char**, const char*, va_list));
213extern __MANGLE__ int	vfprintf __PROTO__((FILE*, const char*, va_list));
214extern __MANGLE__ int	vfscanf __PROTO__((FILE*, const char*, va_list));
215extern __MANGLE__ int	vprintf __PROTO__((const char*, va_list));
216extern __MANGLE__ int	vscanf __PROTO__((const char*, va_list));
217extern __MANGLE__ int	vsnprintf __PROTO__((char*, int, const char*, va_list));
218extern __MANGLE__ int	vsprintf __PROTO__((char*, const char*, va_list));
219extern __MANGLE__ int	vsscanf __PROTO__((const char*, const char*, va_list));
220
221#if _typ_int64_t
222
223extern __MANGLE__ int		fgetpos64 __PROTO__((FILE*, fpos64_t*));
224extern __MANGLE__ int		fsetpos64 __PROTO__((FILE*, const fpos64_t*));
225extern __MANGLE__ int		fseek64 __PROTO__((FILE*, int64_t, int));
226extern __MANGLE__ int		fseeko64 __PROTO__((FILE*, int64_t, int));
227extern __MANGLE__ int64_t		ftell64 __PROTO__((FILE*));
228extern __MANGLE__ int64_t		ftello64 __PROTO__((FILE*));
229
230#endif
231
232extern __MANGLE__ void	clearerr_unlocked __PROTO__((FILE*));
233extern __MANGLE__ int	feof_unlocked __PROTO__((FILE*));
234extern __MANGLE__ int	ferror_unlocked __PROTO__((FILE*));
235extern __MANGLE__ int	fflush_unlocked __PROTO__((FILE*));
236extern __MANGLE__ int	fgetc_unlocked __PROTO__((FILE*));
237extern __MANGLE__ char*	fgets_unlocked __PROTO__((char*, int, FILE*));
238extern __MANGLE__ int	fileno_unlocked __PROTO__((FILE*));
239extern __MANGLE__ int	fputc_unlocked __PROTO__((int, FILE*));
240extern __MANGLE__ int	fputs_unlocked __PROTO__((char*, FILE*));
241extern __MANGLE__ size_t	fread_unlocked __PROTO__((__V_*, size_t, size_t, FILE*));
242extern __MANGLE__ size_t	fwrite_unlocked __PROTO__((__V_*, size_t, size_t, FILE*));
243extern __MANGLE__ int	getc_unlocked __PROTO__((FILE*));
244extern __MANGLE__ int	getchar_unlocked __PROTO__((void));
245extern __MANGLE__ int	putc_unlocked __PROTO__((int, FILE*));
246extern __MANGLE__ int	putchar_unlocked __PROTO__((int));
247
248extern __MANGLE__ void	flockfile __PROTO__((FILE*));
249extern __MANGLE__ int	ftrylockfile __PROTO__((FILE*));
250extern __MANGLE__ void	funlockfile __PROTO__((FILE*));
251
252#ifdef _USE_GNU
253
254extern __MANGLE__ int	fcloseall __PROTO__((void));
255extern __MANGLE__ FILE*	fmemopen __PROTO__((__V_*, size_t, const char*));
256extern __MANGLE__ ssize_t	__getdelim __PROTO__((char**, size_t*, int, FILE*));
257extern __MANGLE__ ssize_t	getdelim __PROTO__((char**, size_t*, int, FILE*));
258extern __MANGLE__ ssize_t	getline __PROTO__((char**, size_t*, FILE*));
259
260#endif
261
262#endif
263
264#ifndef FILENAME_MAX
265#define FILENAME_MAX	1024
266#endif
267#ifndef FOPEN_MAX
268#define FOPEN_MAX	20
269#endif
270#ifndef TMP_MAX
271#define TMP_MAX		17576
272#endif
273
274#define _doprnt		_ast_doprnt
275#define _doscan		_ast_doscan
276#define asprintf	_ast_asprintf
277#define clearerr	_ast_clearerr
278#define fclose		_ast_fclose
279#define fdopen		_ast_fdopen
280#define fflush		_ast_fflush
281#define fgetc		_ast_fgetc
282#define fgetpos		_ast_fgetpos
283#define fgetpos64	_ast_fgetpos64
284#define fgets		_ast_fgets
285#define fopen		_ast_fopen
286#define fprintf		_ast_fprintf
287#define fpurge		_ast_fpurge
288#define fputs		_ast_fputs
289#define fread		_ast_fread
290#define freopen		_ast_freopen
291#define fscanf		_ast_fscanf
292#define fseek		_ast_fseek
293#define fseek64		_ast_fseek64
294#define fseeko		_ast_fseeko
295#define fseeko64	_ast_fseeko64
296#define fsetpos		_ast_fsetpos
297#define fsetpos64	_ast_fsetpos64
298#define ftell		_ast_ftell
299#define ftell64		_ast_ftell64
300#define ftello		_ast_ftello
301#define ftello64	_ast_ftello64
302#define fwrite		_ast_fwrite
303#define gets		_ast_gets
304#define getw		_ast_getw
305#define pclose		_ast_pclose
306#define popen		_ast_popen
307#define printf		_ast_printf
308#define puts		_ast_puts
309#define putw		_ast_putw
310#define rewind		_ast_rewind
311#define scanf		_ast_scanf
312#define setbuf		_ast_setbuf
313#undef	setbuffer
314#define setbuffer	_ast_setbuffer
315#define setlinebuf	_ast_setlinebuf
316#define setvbuf		_ast_setvbuf
317#define snprintf	_ast_snprintf
318#define sprintf		_ast_sprintf
319#define sscanf		_ast_sscanf
320#define tmpfile		_ast_tmpfile
321#define ungetc		_ast_ungetc
322#define vasprintf	_ast_vasprintf
323#define vfprintf	_ast_vfprintf
324#define vfscanf		_ast_vfscanf
325#define vprintf		_ast_vprintf
326#define vscanf		_ast_vscanf
327#define vsnprintf	_ast_vsnprintf
328#define vsprintf	_ast_vsprintf
329#define vsscanf		_ast_vsscanf
330#define fcloseall	_ast_fcloseall
331#define _filbuf		_ast__filbuf
332#define fmemopen	_ast_fmemopen
333#define __getdelim	_ast___getdelim
334#define getdelim	_ast_getdelim
335#define getline		_ast_getline
336#define clearerr_unlocked _ast_clearerr_unlocked
337#define feof_unlocked	_ast_feof_unlocked
338#define ferror_unlocked	_ast_ferror_unlocked
339#define fflush_unlocked	_ast_fflush_unlocked
340#define fgetc_unlocked	_ast_fgetc_unlocked
341#define fgets_unlocked	_ast_fgets_unlocked
342#define fileno_unlocked	_ast_fileno_unlocked
343#define fputc_unlocked	_ast_fputc_unlocked
344#define fputs_unlocked	_ast_fputs_unlocked
345#define fread_unlocked	_ast_fread_unlocked
346#define fwrite_unlocked	_ast_fwrite_unlocked
347#define getc_unlocked	_ast_getc_unlocked
348#define getchar_unlocked _ast_getchar_unlocked
349#define putc_unlocked	_ast_putc_unlocked
350#define putchar_unlocked _ast_putchar_unlocked
351#define flockfile	_ast_flockfile
352#define ftrylockfile	_ast_ftrylockfile
353#define funlockfile	_ast_funlockfile
354
355#if defined(__STDPP__directive) && defined(__STDPP__initial)
356__STDPP__directive pragma pp:initial
357#endif
358#ifndef P_tmpdir
359#define P_tmpdir  "/var/tmp/" /*NOCATLITERAL*/
360#endif
361#ifndef L_ctermid
362#define L_ctermid  9
363#endif
364#ifndef L_tmpnam
365#define L_tmpnam  25
366#endif
367#if defined(__STDPP__directive) && defined(__STDPP__initial)
368__STDPP__directive pragma pp:noinitial
369#endif
370#if defined(__cplusplus) && defined(__THROW)
371extern __MANGLE__ char*	ctermid(char*) __THROW;
372#else
373extern __MANGLE__ char*	ctermid __PROTO__((char*));
374#endif
375extern __MANGLE__ char*	tmpnam __PROTO__((char*));
376extern __MANGLE__ char*	tempnam __PROTO__((const char*, const char*));
377extern __MANGLE__ void	perror __PROTO__((const char*));
378#ifndef _AST_STD_H
379#ifndef remove
380extern __MANGLE__ int	remove __PROTO__((const char*));
381#endif
382#ifndef rename
383extern __MANGLE__ int	rename __PROTO__((const char*, const char*));
384#endif
385#endif
386
387#undef __MANGLE__
388#define __MANGLE__ __LINKAGE__
389
390#if _BLD_ast && defined(__EXPORT__)
391#undef __MANGLE__
392#define __MANGLE__ __LINKAGE__		__EXPORT__
393#endif
394
395extern __MANGLE__ int	_doprnt __PROTO__((const char*, va_list, FILE*));
396extern __MANGLE__ int	_doscan __PROTO__((FILE*, const char*, va_list));
397extern __MANGLE__ int	asprintf __PROTO__((char**, const char*, ...));
398extern __MANGLE__ int	clearerr __PROTO__((FILE*));
399extern __MANGLE__ int	fclose __PROTO__((FILE*));
400extern __MANGLE__ FILE*	fdopen __PROTO__((int, const char*));
401extern __MANGLE__ int	feof __PROTO__((FILE*));
402extern __MANGLE__ int	ferror __PROTO__((FILE*));
403extern __MANGLE__ int	fflush __PROTO__((FILE*));
404extern __MANGLE__ int	fgetc __PROTO__((FILE*));
405extern __MANGLE__ int	fgetpos __PROTO__((FILE*, fpos_t*));
406extern __MANGLE__ char*	fgets __PROTO__((char*, int, FILE*));
407extern __MANGLE__ int	fileno __PROTO__((FILE*));
408extern __MANGLE__ FILE*	fopen __PROTO__((const char*, const char*));
409extern __MANGLE__ int	fprintf __PROTO__((FILE*, const char*, ...));
410extern __MANGLE__ int	fpurge __PROTO__((FILE*));
411extern __MANGLE__ int	fputc __PROTO__((int, FILE*));
412extern __MANGLE__ int	fputs __PROTO__((const char*, FILE*));
413extern __MANGLE__ size_t	fread __PROTO__((__V_*, size_t, size_t, FILE*));
414extern __MANGLE__ FILE*	freopen __PROTO__((const char*, const char*, FILE*));
415extern __MANGLE__ int	fscanf __PROTO__((FILE*, const char*, ...));
416extern __MANGLE__ int	fseek __PROTO__((FILE*, long, int));
417extern __MANGLE__ int	fseeko __PROTO__((FILE*, off_t, int));
418extern __MANGLE__ int	fsetpos __PROTO__((FILE*, const fpos_t*));
419extern __MANGLE__ long	ftell __PROTO__((FILE*));
420extern __MANGLE__ off_t	ftello __PROTO__((FILE*));
421extern __MANGLE__ size_t	fwrite __PROTO__((const __V_*, size_t, size_t, FILE*));
422extern __MANGLE__ int	getc __PROTO__((FILE*));
423extern __MANGLE__ int	getchar __PROTO__((void));
424extern __MANGLE__ char*	gets __PROTO__((char*));
425extern __MANGLE__ int	getw __PROTO__((FILE*));
426extern __MANGLE__ int	pclose __PROTO__((FILE*));
427extern __MANGLE__ FILE*	popen __PROTO__((const char*, const char*));
428extern __MANGLE__ int	printf __PROTO__((const char*, ...));
429extern __MANGLE__ int	putc __PROTO__((int, FILE*));
430extern __MANGLE__ int	putchar __PROTO__((int));
431extern __MANGLE__ int	puts __PROTO__((const char*));
432extern __MANGLE__ int	putw __PROTO__((int, FILE*));
433extern __MANGLE__ void	rewind __PROTO__((FILE*));
434extern __MANGLE__ int	scanf __PROTO__((const char*, ...));
435extern __MANGLE__ void	setbuf __PROTO__((FILE*, char*));
436extern __MANGLE__ int	setbuffer __PROTO__((FILE*, char*, int));
437extern __MANGLE__ int	setlinebuf __PROTO__((FILE*));
438extern __MANGLE__ int	setvbuf __PROTO__((FILE*, char*, int, size_t));
439extern __MANGLE__ int	snprintf __PROTO__((char*, int, const char*, ...));
440extern __MANGLE__ int	sprintf __PROTO__((char*, const char*, ...));
441extern __MANGLE__ int	sscanf __PROTO__((const char*, const char*, ...));
442extern __MANGLE__ FILE*	tmpfile __PROTO__((void));
443extern __MANGLE__ int	ungetc __PROTO__((int, FILE*));
444extern __MANGLE__ int	vasprintf __PROTO__((char**, const char*, va_list));
445extern __MANGLE__ int	vfprintf __PROTO__((FILE*, const char*, va_list));
446extern __MANGLE__ int	vfscanf __PROTO__((FILE*, const char*, va_list));
447extern __MANGLE__ int	vprintf __PROTO__((const char*, va_list));
448extern __MANGLE__ int	vscanf __PROTO__((const char*, va_list));
449extern __MANGLE__ int	vsnprintf __PROTO__((char*, int, const char*, va_list));
450extern __MANGLE__ int	vsprintf __PROTO__((char*, const char*, va_list));
451extern __MANGLE__ int	vsscanf __PROTO__((const char*, const char*, va_list));
452
453#if _typ_int64_t
454
455extern __MANGLE__ int		fgetpos64 __PROTO__((FILE*, fpos64_t*));
456extern __MANGLE__ int		fsetpos64 __PROTO__((FILE*, const fpos64_t*));
457extern __MANGLE__ int		fseek64 __PROTO__((FILE*, int64_t, int));
458extern __MANGLE__ int		fseeko64 __PROTO__((FILE*, int64_t, int));
459extern __MANGLE__ int64_t		ftell64 __PROTO__((FILE*));
460extern __MANGLE__ int64_t		ftello64 __PROTO__((FILE*));
461
462#ifdef _LARGEFILE64_SOURCE
463
464#undef	fpos_t
465#undef	off_t
466#undef	fgetpos
467#undef	fsetpos
468#undef	fseek
469#undef	fseeko
470#undef	ftell
471#undef	ftello
472
473#define	fpos_t		fpos64_t
474#if _typ_off64_t
475#define	off_t		off64_t
476#else
477#define	off_t		int64_t
478#endif
479
480#define fgetpos		fgetpos64
481#define fsetpos		fsetpos64
482#define	fseek		fseek64
483#define	fseeko		fseeko64
484#define ftell		ftell64
485#define ftello		ftello64
486
487#endif
488
489#endif
490
491extern __MANGLE__ void	clearerr_unlocked __PROTO__((FILE*));
492extern __MANGLE__ int	feof_unlocked __PROTO__((FILE*));
493extern __MANGLE__ int	ferror_unlocked __PROTO__((FILE*));
494extern __MANGLE__ int	fflush_unlocked __PROTO__((FILE*));
495extern __MANGLE__ int	fgetc_unlocked __PROTO__((FILE*));
496extern __MANGLE__ char*	fgets_unlocked __PROTO__((char*, int, FILE*));
497extern __MANGLE__ int	fileno_unlocked __PROTO__((FILE*));
498extern __MANGLE__ int	fputc_unlocked __PROTO__((int, FILE*));
499extern __MANGLE__ int	fputs_unlocked __PROTO__((char*, FILE*));
500extern __MANGLE__ size_t	fread_unlocked __PROTO__((__V_*, size_t, size_t, FILE*));
501extern __MANGLE__ size_t	fwrite_unlocked __PROTO__((__V_*, size_t, size_t, FILE*));
502extern __MANGLE__ int	getc_unlocked __PROTO__((FILE*));
503extern __MANGLE__ int	getchar_unlocked __PROTO__((void));
504extern __MANGLE__ int	putc_unlocked __PROTO__((int, FILE*));
505extern __MANGLE__ int	putchar_unlocked __PROTO__((int));
506
507#ifdef _USE_GNU
508
509extern __MANGLE__ int	fcloseall __PROTO__((void));
510extern __MANGLE__ FILE*	fmemopen __PROTO__((__V_*, size_t, const char*));
511extern __MANGLE__ ssize_t	__getdelim __PROTO__((char**, size_t*, int, FILE*));
512extern __MANGLE__ ssize_t	getdelim __PROTO__((char**, size_t*, int, FILE*));
513extern __MANGLE__ ssize_t	getline __PROTO__((char**, size_t*, FILE*));
514
515#endif
516
517#undef __MANGLE__
518#define __MANGLE__ __LINKAGE__
519
520#if _BLD_DLL && _DLL_INDIRECT_DATA
521
522#define stdin		((FILE*)_ast_dll->_ast_stdin)
523#define stdout		((FILE*)_ast_dll->_ast_stdout)
524#define stderr		((FILE*)_ast_dll->_ast_stderr)
525
526#else
527
528#define	stdin		(&_Sfstdin)
529#define	stdout		(&_Sfstdout)
530#define	stderr		(&_Sfstderr)
531
532#endif
533
534#if defined(_AST_H) || defined(_SFIO_H)
535
536#define feof(f)		sfeof(f)
537#define ferror(f)	sferror(f)
538#define fileno(f)	sffileno(f)
539#define fputc(c,f)	sfputc(f,c)
540#define getc(f)		sfgetc(f)
541#define getchar()	sfgetc(sfstdin)
542#define putc(c,f)	sfputc(f,c)
543#define putchar(c)	sfputc(sfstdout,c)
544
545#else
546
547#if !_UWIN
548#if _BLD_ast && defined(__EXPORT__)
549#undef __MANGLE__
550#define __MANGLE__ __LINKAGE__ __EXPORT__
551#endif
552#if !_BLD_ast && defined(__IMPORT__)
553#undef __MANGLE__
554#define __MANGLE__ __LINKAGE__ __IMPORT__
555#endif
556#endif
557
558extern __MANGLE__ FILE	_Sfstdin;
559extern __MANGLE__ FILE	_Sfstdout;
560extern __MANGLE__ FILE	_Sfstderr;
561
562#undef __MANGLE__
563#define __MANGLE__ __LINKAGE__
564
565#define feof(f)		(_sf_(f)->_flags&_SF_EOF)
566#define ferror(f)	(_sf_(f)->_flags&_SF_ERROR)
567#define fileno(f)	(_sf_(f)->_file)
568#define fputc(c,f)	(_sf_(f)->_next>=_sf_(f)->_endw?_sfflsbuf(_sf_(f),(int)((unsigned char)(c))):(int)(*_sf_(f)->_next++=(unsigned char)(c)))
569#define getc(f)		(_sf_(f)->_next>=_sf_(f)->_endr?_sffilbuf(_sf_(f),0):(int)(*_sf_(f)->_next++))
570#define getchar()	getc(stdin)
571#define putc(c,f)	fputc(c,f)
572#define putchar(c)	fputc(c,stdout)
573
574#if _BLD_ast && defined(__EXPORT__)
575#undef __MANGLE__
576#define __MANGLE__ __LINKAGE__		__EXPORT__
577#endif
578
579extern __MANGLE__ int		_sffilbuf __PROTO__((FILE*, int));
580extern __MANGLE__ int		_sfflsbuf __PROTO__((FILE*, int));
581
582#undef __MANGLE__
583#define __MANGLE__ __LINKAGE__
584
585#endif
586
587#endif
588