summaryrefslogtreecommitdiffstats
path: root/contrib/libf2c/libI77/fio.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/libf2c/libI77/fio.h')
-rw-r--r--contrib/libf2c/libI77/fio.h104
1 files changed, 104 insertions, 0 deletions
diff --git a/contrib/libf2c/libI77/fio.h b/contrib/libf2c/libI77/fio.h
new file mode 100644
index 0000000..7734f0c
--- /dev/null
+++ b/contrib/libf2c/libI77/fio.h
@@ -0,0 +1,104 @@
+#include <sys/types.h>
+#include <stdio.h>
+#include <errno.h>
+#ifndef NULL
+/* ANSI C */
+#include <stddef.h>
+#endif
+#ifdef STDC_HEADERS
+#include <string.h>
+#endif
+
+#ifndef SEEK_SET
+#define SEEK_SET 0
+#define SEEK_CUR 1
+#define SEEK_END 2
+#endif
+
+/* Only use fseeko/ftello if they are both there. */
+
+#if defined (HAVE_FSEEKO) && defined (HAVE_FTELLO)
+#define FSEEK fseeko
+#define FTELL ftello
+#else
+#define FSEEK fseek
+#define FTELL ftell
+#endif
+
+#if defined (MSDOS) && !defined (GO32)
+#ifndef NON_UNIX_STDIO
+#define NON_UNIX_STDIO
+#endif
+#endif
+
+#ifdef UIOLEN_int
+typedef int uiolen;
+#else
+typedef long uiolen;
+#endif
+
+/*units*/
+typedef struct
+{
+ FILE *ufd; /*0=unconnected */
+ char *ufnm;
+#if !(defined (MSDOS) && !defined (GO32))
+ long uinode;
+ int udev;
+#endif
+ int url; /*0=sequential */
+ flag useek; /*true=can backspace, use dir, ... */
+ flag ufmt;
+ flag urw; /* (1 for can read) | (2 for can write) */
+ flag ublnk;
+ flag uend;
+ flag uwrt; /*last io was write */
+ flag uscrtch;
+}
+unit;
+
+extern int f__init;
+extern cilist *f__elist; /*active external io list */
+extern flag f__reading, f__external, f__sequential, f__formatted;
+extern int (*f__getn) (void); /* for formatted input */
+extern void (*f__putn) (int); /* for formatted output */
+extern void x_putc (int);
+extern long f__inode (char *, int *);
+extern void sig_die (char *, int);
+extern void f__fatal (int, char *);
+extern int t_runc (alist *);
+extern int f__nowreading (unit *), f__nowwriting (unit *);
+extern int fk_open (int, int, ftnint);
+extern int en_fio (void);
+extern void f_init (void);
+extern int (*f__donewrec) (void), t_putc (int), x_wSL (void);
+extern void b_char (char *, char *, ftnlen), g_char (char *, ftnlen, char *);
+extern int c_sfe (cilist *), z_rnew (void);
+extern int isatty (int);
+extern int err__fl (int, int, char *);
+extern int xrd_SL (void);
+extern int f__putbuf (int);
+extern int (*f__doend) (void);
+extern FILE *f__cf; /*current file */
+extern unit *f__curunit; /*current unit */
+extern unit f__units[];
+#define err(f,m,s) do {if(f) {f__init &= ~2; errno= m;} else f__fatal(m,s); return(m);} while(0)
+#define errfl(f,m,s) do {return err__fl((int)f,m,s);} while(0)
+
+/*Table sizes*/
+#define MXUNIT 100
+
+extern int f__recpos; /*position in current record */
+extern int f__cursor; /* offset to move to */
+extern int f__hiwater; /* so TL doesn't confuse us */
+
+#define WRITE 1
+#define READ 2
+#define SEQ 3
+#define DIR 4
+#define FMT 5
+#define UNF 6
+#define EXT 7
+#define INT 8
+
+#define buf_end(x) (x->_flag & _IONBF ? x->_ptr : x->_base + BUFSIZ)
OpenPOWER on IntegriCloud