Doxygen Source Code Documentation
dfe.c File Reference
#include "f2c.h"
#include "fio.h"
#include "fmt.h"
Go to the source code of this file.
Functions | |
y_rsk (Void) | |
y_getc (Void) | |
y_putc (int c) | |
y_rev (Void) | |
y_err (Void) | |
y_newrec (Void) | |
c_dfe (cilist *a) | |
integer | s_rdfe (cilist *a) |
integer | s_wdfe (cilist *a) |
integer | e_rdfe (Void) |
integer | e_wdfe (Void) |
Function Documentation
|
Definition at line 83 of file dfe.c. References cilist::cierr, cilist::cifmt, cilist::cirec, cilist::ciunit, DIR, err, fk_open(), FMT, and MXUNIT. Referenced by s_rdfe(), and s_wdfe().
00085 { 00086 f__sequential=0; 00087 f__formatted=f__external=1; 00088 f__elist=a; 00089 f__cursor=f__scale=f__recpos=0; 00090 if(a->ciunit>MXUNIT || a->ciunit<0) 00091 err(a->cierr,101,"startchk"); 00092 f__curunit = &f__units[a->ciunit]; 00093 if(f__curunit->ufd==NULL && fk_open(DIR,FMT,a->ciunit)) 00094 err(a->cierr,104,"dfe"); 00095 f__cf=f__curunit->ufd; 00096 if(!f__curunit->ufmt) err(a->cierr,102,"dfe") 00097 if(!f__curunit->useek) err(a->cierr,104,"dfe") 00098 f__fmtbuf=a->cifmt; 00099 (void) fseek(f__cf,(long)f__curunit->url * (a->cirec-1),SEEK_SET); 00100 f__curunit->uend = 0; 00101 return(0); 00102 } |
|
Definition at line 148 of file dfe.c. References en_fio().
00149 { 00150 (void) en_fio(); 00151 return(0); 00152 } |
|
Definition at line 153 of file dfe.c. References en_fio().
00154 { 00155 return en_fio(); 00156 } |
|
Definition at line 106 of file dfe.c. References c_dfe(), cilist::cierr, err, f__nowreading(), f_init(), fmt_bg(), pars_f(), y_err(), y_getc(), and y_rsk().
00108 { 00109 int n; 00110 if(!f__init) f_init(); 00111 if(n=c_dfe(a))return(n); 00112 f__reading=1; 00113 if(f__curunit->uwrt && f__nowreading(f__curunit)) 00114 err(a->cierr,errno,"read start"); 00115 f__getn = y_getc; 00116 f__doed = rd_ed; 00117 f__doned = rd_ned; 00118 f__dorevert = f__donewrec = y_err; 00119 f__doend = y_rsk; 00120 if(pars_f(f__fmtbuf)<0) 00121 err(a->cierr,100,"read start"); 00122 fmt_bg(); 00123 return(0); 00124 } |
|
Definition at line 128 of file dfe.c. References c_dfe(), cilist::cierr, err, f__nowwriting(), f_init(), fmt_bg(), pars_f(), y_err(), y_newrec(), y_putc(), and y_rev().
00130 { 00131 int n; 00132 if(!f__init) f_init(); 00133 if(n=c_dfe(a)) return(n); 00134 f__reading=0; 00135 if(f__curunit->uwrt != 1 && f__nowwriting(f__curunit)) 00136 err(a->cierr,errno,"startwrt"); 00137 f__putn = y_putc; 00138 f__doed = w_ed; 00139 f__doned= w_ned; 00140 f__dorevert = y_err; 00141 f__donewrec = y_newrec; 00142 f__doend = y_rev; 00143 if(pars_f(f__fmtbuf)<0) 00144 err(a->cierr,100,"startwrt"); 00145 fmt_bg(); 00146 return(0); 00147 } |
|
Definition at line 59 of file dfe.c. References err. Referenced by s_rdfe(), and s_wdfe().
00060 { 00061 err(f__elist->cierr, 110, "dfe"); 00062 #ifdef __cplusplus 00063 return 0; 00064 #endif 00065 } |
|
Definition at line 14 of file dfe.c. References err. Referenced by s_rdfe().
00015 { 00016 int ch; 00017 if(f__curunit->uend) return(-1); 00018 if((ch=getc(f__cf))!=EOF) 00019 { 00020 f__recpos++; 00021 if(f__curunit->url>=f__recpos || 00022 f__curunit->url==1) 00023 return(ch); 00024 else return(' '); 00025 } 00026 if(feof(f__cf)) 00027 { 00028 f__curunit->uend=1; 00029 errno=0; 00030 return(-1); 00031 } 00032 err(f__elist->cierr,errno,"readingd"); 00033 #ifdef __cplusplus 00034 return 0; 00035 #endif 00036 } |
|
Definition at line 67 of file dfe.c. References y_rev(). Referenced by s_wdfe().
00068 { 00069 if(f__curunit->url == 1 || f__recpos == f__curunit->url) { 00070 f__hiwater = f__recpos = f__cursor = 0; 00071 return(1); 00072 } 00073 if(f__hiwater > f__recpos) 00074 f__recpos = f__hiwater; 00075 y_rev(); 00076 f__hiwater = f__cursor = 0; 00077 return(1); 00078 } |
|
Definition at line 40 of file dfe.c. Referenced by s_wdfe().
|
|
Definition at line 50 of file dfe.c. Referenced by s_wdfe(), and y_newrec().
00051 { /*what about work done?*/ 00052 if(f__curunit->url==1 || f__recpos==f__curunit->url) 00053 return(0); 00054 while(f__recpos<f__curunit->url) 00055 (*f__putn)(' '); 00056 f__recpos=0; 00057 return(0); 00058 } |
|
Definition at line 5 of file dfe.c. Referenced by s_rdfe().
00006 { 00007 if(f__curunit->uend || f__curunit->url <= f__recpos 00008 || f__curunit->url == 1) return 0; 00009 do { 00010 getc(f__cf); 00011 } while(++f__recpos < f__curunit->url); 00012 return 0; 00013 } |