--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/genericopenlibs/cstdlib/LINC/STDIO.H Tue Feb 02 02:01:42 2010 +0200
@@ -0,0 +1,229 @@
+/* STDIO.H
+ *
+ * Portions Copyright (c) 1990-1999 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ */
+
+/** @file
+@publishedAll
+@released
+*/
+
+/*
+ * Copyright (c) 1990 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the University of California, Berkeley. The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * @(#)stdio.h 5.3 (Berkeley) 3/15/86
+ */
+
+/*
+ * NB: to fit things in six character monocase externals, the
+ * stdio code uses the prefix `__s' for stdio objects, typically
+ * followed by a three-character attempt at a mnemonic.
+ */
+
+#ifndef _STDIO_H_
+#define _STDIO_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "_ansi.h"
+
+#define _FSTDIO /* ``function stdio'' */
+
+#define __need_size_t
+#include <stddef.h>
+
+#include <stdarg_e.h> /* defines __e32_va_list */
+
+#include <sys/stdio_t.h> /* Definition of _fpos_t and struct __sFILE */
+
+typedef _fpos_t fpos_t;
+typedef struct __sFILE FILE;
+
+#define __SLBF 0x0001 /* line buffered */
+#define __SNBF 0x0002 /* unbuffered */
+#define __SRD 0x0004 /* OK to read */
+#define __SWR 0x0008 /* OK to write */
+ /* RD and WR are never simultaneously asserted */
+#define __SRW 0x0010 /* open for reading & writing */
+#define __SEOF 0x0020 /* found EOF */
+#define __SERR 0x0040 /* found error */
+#define __SMBF 0x0080 /* _buf is from malloc */
+#define __SAPP 0x0100 /* fdopen()ed in append mode - so must write to end */
+#define __SSTR 0x0200 /* this is an sprintf/snprintf string */
+#define __SOPT 0x0400 /* do fseek() optimisation */
+#define __SNPT 0x0800 /* do not do fseek() optimisation */
+#define __SOFF 0x1000 /* set iff _offset is in fact correct */
+#define __SMOD 0x2000 /* true => fgetline modified _p text */
+
+/**
+The following three definitions are for ANSI C, which took them
+from System V, which stupidly took internal interface macros and
+made them official arguments to setvbuf(), without renaming them.
+Hence, these ugly _IOxxx names are *supposed* to appear in user code.
+
+Although these happen to match their counterparts above, the
+implementation does not rely on that (so these could be renumbered).
+*/
+#define _IOFBF 0 /* setvbuf should set fully buffered */
+#define _IOLBF 1 /* setvbuf should set line buffered */
+#define _IONBF 2 /* setvbuf should set unbuffered */
+
+#ifndef NULL
+#define NULL 0L
+#endif
+
+#define BUFSIZ 1024
+#define EOF (-1)
+
+#define FOPEN_MAX 20 /* must be <= OPEN_MAX <sys/syslimits.h> */
+#define FILENAME_MAX 256 /* must be <= PATH_MAX <sys/syslimits.h> */
+#define P_tmpdir "/System/temp/"
+#define WIDEP_tmpdir L"/System/temp/"
+#define L_tmpnam 34 /* ?:/System/temp/t%x.%x */
+
+#ifndef SEEK_SET
+#define SEEK_SET 0 /* set file offset to offset */
+#endif
+#ifndef SEEK_CUR
+#define SEEK_CUR 1 /* set file offset to current plus offset */
+#endif
+#ifndef SEEK_END
+#define SEEK_END 2 /* set file offset to EOF plus offset */
+#endif
+
+#define TMP_MAX 26
+
+/**
+Function interface to the "constants" stdin, stdout and stderr.
+These functions guarantee to return a fixed value, so that it
+will be possible to use expressions such as
+if (fp != stdout)
+ fclose(fp);
+
+with complete confidence. Unfortunately it will rule out initialising
+global variables with stdin/stdout/stderr, as in the common idiom:
+
+static FILE *log = stderr;
+
+This isn't currently possible with EPOC32.
+*/
+IMPORT_C FILE *__stdin (void);
+IMPORT_C FILE *__stdout (void);
+IMPORT_C FILE *__stderr (void);
+
+#define stdin (__stdin())
+#define stdout (__stdout())
+#define stderr (__stderr())
+
+/**
+Functions defined in ANSI C standard.
+*/
+IMPORT_C FILE * tmpfile (void);
+IMPORT_C char * tmpnam (char *);
+IMPORT_C wchar_t * wtmpnam (wchar_t *);
+IMPORT_C int fclose (FILE *);
+IMPORT_C int fflush (FILE *);
+IMPORT_C FILE * freopen (const char *, const char *, FILE *);
+IMPORT_C FILE * wfreopen (const wchar_t *, const wchar_t *, FILE *);
+IMPORT_C void setbuf (FILE *, char *);
+IMPORT_C int setvbuf (FILE *, char *, int, size_t);
+IMPORT_C int fprintf (FILE *, const char *, ...);
+IMPORT_C int fscanf (FILE *, const char *, ...);
+IMPORT_C int printf (const char *, ...);
+IMPORT_C int scanf (const char *, ...);
+IMPORT_C int sscanf (const char *, const char *, ...);
+IMPORT_C int vfprintf (FILE *, const char *, __e32_va_list);
+IMPORT_C int vprintf (const char *, __e32_va_list);
+IMPORT_C int vsprintf (char *, const char *, __e32_va_list);
+IMPORT_C int fgetc (FILE *);
+IMPORT_C char * fgets (char *, int, FILE *);
+IMPORT_C int fputc (int, FILE *);
+IMPORT_C int fputs (const char *, FILE *);
+IMPORT_C int getc (FILE *);
+IMPORT_C int getchar (void);
+IMPORT_C char * gets (char *);
+IMPORT_C int putc (int, FILE *);
+IMPORT_C int putchar (int);
+IMPORT_C int puts (const char *);
+IMPORT_C int ungetc (int, FILE *);
+IMPORT_C size_t fread (void*, size_t _size, size_t _n, FILE *);
+IMPORT_C size_t fwrite (const void* , size_t _size, size_t _n, FILE *);
+IMPORT_C int fgetpos (FILE *, fpos_t *);
+IMPORT_C int fseek (FILE *, long, int);
+IMPORT_C int fsetpos (FILE *, const fpos_t *);
+IMPORT_C long ftell (FILE *);
+IMPORT_C void rewind (FILE *);
+IMPORT_C void clearerr (FILE *);
+IMPORT_C int feof (FILE *);
+IMPORT_C int ferror (FILE *);
+IMPORT_C void perror (const char *);
+#ifndef _REENT_ONLY
+IMPORT_C FILE * fopen (const char *_name, const char *_type);
+IMPORT_C FILE * wfopen (const wchar_t *_name, const wchar_t *_type);
+IMPORT_C int sprintf (char *, const char *, ...);
+#endif
+
+/**
+Routines in POSIX 1003.1.
+*/
+IMPORT_C int fileno (FILE *);
+
+#ifndef _REENT_ONLY
+IMPORT_C FILE * fdopen (int, const char *);
+IMPORT_C FILE * wfdopen (int, const wchar_t *);
+#endif
+
+/**
+The name _cleanup is rather well-known...
+*/
+IMPORT_C void _cleanup (void);
+
+/**
+EPOC32 support for multiple processes
+*/
+IMPORT_C int popen3 (const char *cmd, const char *mode, char** envp, int fids[3]);
+IMPORT_C int wpopen3 (const wchar_t *cmd, const wchar_t *mode, wchar_t** envp, int fids[3]);
+
+#ifndef _STRICT_ANSI
+int getw (FILE *);
+int putw (int, FILE *);
+void setbuffer (FILE *, char *, int);
+int setlinebuf (FILE *);
+
+/**
+Stdio function-access interface.
+*/
+FILE *funopen (const void* _cookie,
+ int (*readfn) (void* _cookie, char *_buf, int _n),
+ int (*writefn)(void* _cookie, const char *_buf, int _n),
+ fpos_t (*seekfn) (void* _cookie, fpos_t _off, int _whence),
+ int (*closefn)(void* _cookie));
+
+#define fropen(cookie, fn) funopen(cookie, fn, (int (*)())0, (fpos_t (*)())0, (int (*)())0)
+#define fwopen(cookie, fn) funopen(cookie, (int (*)())0, fn, (fpos_t (*)())0, (int (*)())0)
+#define getchar() getc(stdin)
+#define putchar(x) putc(x, stdout)
+#define L_cuserid 9 /* posix says it goes in stdio.h :( */
+
+#endif /* _STRICT_ANSI */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* _STDIO_H_ */