home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #6 / amigamamagazinepolishissue1998.iso / coders / f2c / i77lib / fio.h < prev    next >
C/C++ Source or Header  |  2000-06-22  |  5KB  |  198 lines

  1. #include "stdio.h"
  2. #include "errno.h"
  3. #ifndef NULL
  4. /* ANSI C */
  5. #include "stddef.h"
  6. #endif
  7.  
  8. #ifndef SEEK_SET
  9. #define SEEK_SET 0
  10. #define SEEK_CUR 1
  11. #define SEEK_END 2
  12. #endif
  13.  
  14. #ifdef MSDOS
  15. #ifndef NON_UNIX_STDIO
  16. #define NON_UNIX_STDIO
  17. #endif
  18. #endif
  19.  
  20. #ifdef UIOLEN_int
  21. typedef int uiolen;
  22. #else
  23. typedef long uiolen;
  24. #endif
  25.  
  26. /*units*/
  27. typedef struct
  28. {    FILE *ufd;    /*0=unconnected*/
  29.     char *ufnm;
  30. #ifndef MSDOS
  31.     long uinode;
  32.     int udev;
  33. #endif
  34.     int url;    /*0=sequential*/
  35.     flag useek;    /*true=can backspace, use dir, ...*/
  36.     flag ufmt;
  37.     flag uprnt;
  38.     flag ublnk;
  39.     flag uend;
  40.     flag uwrt;    /*last io was write*/
  41.     flag uscrtch;
  42. } unit;
  43.  
  44. extern flag f__init;
  45. extern cilist *f__elist;    /*active external io list*/
  46. extern flag f__reading,f__external,f__sequential,f__formatted;
  47. #ifdef KR_headers
  48. #define Void /*void*/
  49. extern int (*f__getn)(),(*f__putn)();    /*for formatted io*/
  50. extern long f__inode();
  51. extern VOID sig_die();
  52. extern int (*f__donewrec)(), t_putc(), x_wSL();
  53. extern int c_sfe();
  54. #else
  55. #define Void void
  56. #ifdef __cplusplus
  57. extern "C" {
  58. #endif
  59. extern int (*f__getn)(void),(*f__putn)(int);    /*for formatted io*/
  60. extern long f__inode(char*,int*);
  61. extern void sig_die(char*,int);
  62. extern void f__fatal(int,char*);
  63. extern int t_runc(alist*);
  64. extern int f__nowreading(unit*), f__nowwriting(unit*);
  65. extern int fk_open(int,int,ftnint);
  66. extern int en_fio(void);
  67. extern void f_init(void);
  68. extern int (*f__donewrec)(void), t_putc(int), x_wSL(void);
  69. extern void b_char(char*,char*,ftnlen), g_char(char*,ftnlen,char*);
  70. extern int c_sfe(cilist*), z_rnew(void);
  71. extern int isatty(int);
  72. #ifdef __cplusplus
  73.     }
  74. #endif
  75. #endif
  76. extern FILE *f__cf;    /*current file*/
  77. extern unit *f__curunit;    /*current unit*/
  78. extern unit f__units[];
  79. #define err(f,m,s) {if(f) errno= m; else f__fatal(m,s); return(m);}
  80.  
  81. /*Table sizes*/
  82. #define MXUNIT 100
  83.  
  84. extern int f__recpos;    /*position in current record*/
  85. extern int f__cursor;    /* offset to move to */
  86. extern int f__hiwater;    /* so TL doesn't confuse us */
  87.  
  88. #define WRITE    1
  89. #define READ    2
  90. #define SEQ    3
  91. #define DIR    4
  92. #define FMT    5
  93. #define UNF    6
  94. #define EXT    7
  95. #define INT    8
  96.  
  97. #define buf_end(x) (x->_flag & _IONBF ? x->_ptr : x->_base + BUFSIZ)
  98. #ifdef __cplusplus
  99. extern "C" {
  100. extern long int f_back(alist *);
  101. extern long int f_clos(cllist *);
  102. extern void f_exit(void);
  103. extern void flush_(void);
  104. extern int y_rsk(void);
  105. extern int y_getc(void);
  106. extern int y_putc(int);
  107. extern int y_rev(void);
  108. extern int y_err(void);
  109. extern int y_newrec(void);
  110. extern int c_dfe(cilist *);
  111. extern long int s_rdfe(cilist *);
  112. extern long int s_wdfe(cilist *);
  113. extern long int e_rdfe(void);
  114. extern long int e_wdfe(void);
  115. extern long int do_lio(long int *, long int *, char *, long int);
  116. extern int c_due(cilist *);
  117. extern long int s_rdue(cilist *);
  118. extern long int s_wdue(cilist *);
  119. extern long int e_rdue(void);
  120. extern long int e_wdue(void);
  121. extern long int f_end(alist *);
  122. extern int f__canseek(struct _iobuf *);
  123. extern char *ap_end(char *);
  124. extern int op_gen(int, int, int, int);
  125. extern char *gt_num(char *, int *);
  126. extern char *f_s(char *, int);
  127. extern int ne_d(char *, char **);
  128. extern int e_d(char *, char **);
  129. extern char *i_tem(char *);
  130. extern char *f_list(char *);
  131. extern int pars_f(char *);
  132. extern int type_f(int);
  133. extern long int do_fio(long int *, char *, long int);
  134. extern void fmt_bg(void);
  135. extern char *f__icvt(long int, int *, int *, int);
  136. extern int z_getc(void);
  137. extern int z_putc(int);
  138. extern int c_si(icilist *);
  139. extern int y_ierr(void);
  140. extern long int s_rsfi(icilist *);
  141. extern int z_wnew(void);
  142. extern long int s_wsfi(icilist *);
  143. extern long int e_rsfi(void);
  144. extern long int e_wsfi(void);
  145. extern void c_liw(icilist *);
  146. extern int s_wsni(icilist *);
  147. extern long int s_wsli(icilist *);
  148. extern long int e_wsli(void);
  149. extern long int f_inqu(inlist *);
  150. extern int t_getc(void);
  151. extern long int e_rsle(void);
  152. extern int l_R(int);
  153. extern int l_C(void);
  154. extern int l_L(void);
  155. extern int l_CHAR(void);
  156. extern int c_le(cilist *);
  157. extern int l_read(long int *, char *, long int, long int);
  158. extern long int s_rsle(cilist *);
  159. extern char *mktemp(char *);
  160. extern int f__isdev(char *);
  161. extern long int f_open(olist *);
  162. extern long int f_rew(alist *);
  163. extern int xrd_SL(void);
  164. extern int x_getc(void);
  165. extern int x_endp(void);
  166. extern int x_rev(void);
  167. extern long int s_rsfe(cilist *);
  168. extern int i_getc(void);
  169. extern int i_ungetc(int, struct _iobuf *);
  170. extern long int s_rsli(icilist *);
  171. extern long int e_rsli(void);
  172. extern int s_rsni(icilist *);
  173. extern int x_rsne(cilist *);
  174. extern long int s_rsne(cilist *);
  175. extern long int e_rsfe(void);
  176. extern long int e_wsfe(void);
  177. extern int c_sue(cilist *);
  178. extern long int s_rsue(cilist *);
  179. extern long int s_wsue(cilist *);
  180. extern long int e_wsue(void);
  181. extern long int e_rsue(void);
  182. extern int do_us(long int *, char *, long int);
  183. extern long int do_ud(long int *, char *, long int);
  184. extern long int do_uio(long int *, char *, long int);
  185. extern long int f__inode(char *, int *);
  186. extern void f__mvgbt(int, int, char *, char *);
  187. extern int mv_cur(void);
  188. extern int x_putc(int);
  189. extern int xw_end(void);
  190. extern int xw_rev(void);
  191. extern long int s_wsfe(cilist *);
  192. extern long int s_wsle(cilist *);
  193. extern long int e_wsle(void);
  194. extern long int s_wsne(cilist *);
  195. extern void x_wsne(cilist *);
  196.     }
  197. #endif
  198.