|
|
1.1 root 1: #include "f2c.h"
2: #include "fio.h"
3: extern uiolen f__reclen;
4: long f__recloc;
5:
6: #ifdef KR_headers
7: c_sue(a) cilist *a;
8: #else
9: c_sue(cilist *a)
10: #endif
11: {
12: if(a->ciunit >= MXUNIT || a->ciunit < 0)
13: err(a->cierr,101,"startio");
14: f__external=f__sequential=1;
15: f__formatted=0;
16: f__curunit = &f__units[a->ciunit];
17: f__elist=a;
18: if(f__curunit->ufd==NULL && fk_open(SEQ,UNF,a->ciunit))
19: err(a->cierr,114,"sue");
20: f__cf=f__curunit->ufd;
21: if(f__curunit->ufmt) err(a->cierr,103,"sue")
22: if(!f__curunit->useek) err(a->cierr,103,"sue")
23: return(0);
24: }
25: #ifdef KR_headers
26: integer s_rsue(a) cilist *a;
27: #else
28: integer s_rsue(cilist *a)
29: #endif
30: {
31: int n;
32: if(!f__init) f_init();
33: f__reading=1;
34: if(n=c_sue(a)) return(n);
35: f__recpos=0;
36: if(f__curunit->uwrt && f__nowreading(f__curunit))
37: err(a->cierr, errno, "read start");
38: if(fread((char *)&f__reclen,sizeof(uiolen),1,f__cf)
39: != 1)
40: { if(feof(f__cf))
41: { f__curunit->uend = 1;
42: err(a->ciend, EOF, "start");
43: }
44: clearerr(f__cf);
45: err(a->cierr, errno, "start");
46: }
47: return(0);
48: }
49: #ifdef KR_headers
50: integer s_wsue(a) cilist *a;
51: #else
52: integer s_wsue(cilist *a)
53: #endif
54: {
55: int n;
56: if(!f__init) f_init();
57: if(n=c_sue(a)) return(n);
58: f__reading=0;
59: f__reclen=0;
60: if(f__curunit->uwrt != 1 && f__nowwriting(f__curunit))
61: err(a->cierr, errno, "write start");
62: f__recloc=ftell(f__cf);
63: (void) fseek(f__cf,(long)sizeof(uiolen),SEEK_CUR);
64: return(0);
65: }
66: integer e_wsue(Void)
67: { long loc;
68: (void) fwrite((char *)&f__reclen,sizeof(uiolen),1,f__cf);
69: loc=ftell(f__cf);
70: (void) fseek(f__cf,f__recloc,SEEK_SET);
71: (void) fwrite((char *)&f__reclen,sizeof(uiolen),1,f__cf);
72: (void) fseek(f__cf,loc,SEEK_SET);
73: return(0);
74: }
75: integer e_rsue(Void)
76: {
77: (void) fseek(f__cf,(long)(f__reclen-f__recpos+sizeof(uiolen)),SEEK_CUR);
78: return(0);
79: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.