|
|
1.1 root 1: 4d3
2: < #include "fcntl.h"
3: 6,8d4
4: < #ifndef O_RDONLY
5: < #define O_RDONLY 0
6: < #endif
7: 19a16,24
8: > #ifdef NON_UNIX_STDIO
9: > #ifndef unlink
10: > #define unlink remove
11: > #endif
12: > #else
13: > #ifdef MSDOS
14: > #include "io.h"
15: > #endif
16: > #endif
17: 20a26,29
18: > #ifdef NON_UNIX_STDIO
19: > extern char *f__r_mode[], *f__w_mode[];
20: > #endif
21: >
22: 32a42,47
23: > #ifdef NON_UNIX_STDIO
24: > { FILE *tf;
25: > if (tf = fopen(nbuf, f__w_mode[0]))
26: > fclose(tf);
27: > }
28: > #else
29: 33a49
30: > #endif
31: 40a57
32: > #ifdef NON_UNIX_STDIO
33: 43a61,78
34: > copy(FILE *from, register long len, FILE *to)
35: > #endif
36: > {
37: > int k, len1;
38: > char buf[BUFSIZ];
39: >
40: > while(fread(buf, len1 = len > BUFSIZ ? BUFSIZ : (int)len, 1, from)) {
41: > if (!fwrite(buf, len1, 1, to))
42: > return 1;
43: > if ((len -= len1) <= 0)
44: > break;
45: > }
46: > return 0;
47: > }
48: > #else
49: > #ifdef KR_headers
50: > copy(from, len, to) char *from, *to; register long len;
51: > #else
52: 64a100
53: > #endif
54: 79a116,120
55: > #ifdef NON_UNIX_STDIO
56: > FILE *bf, *tf;
57: > #else
58: > FILE *bf;
59: > #endif
60: 83,86c124,128
61: < if(b->url) return(0); /*don't truncate direct files*/
62: < loc=ftell(b->ufd);
63: < (void) fseek(b->ufd,0L,SEEK_END);
64: < len=ftell(b->ufd);
65: ---
66: > if(b->url)
67: > return(0); /*don't truncate direct files*/
68: > loc=ftell(bf = b->ufd);
69: > fseek(bf,0L,SEEK_END);
70: > len=ftell(bf);
71: 89c131
72: < #ifdef MSDOS
73: ---
74: > #ifdef NON_UNIX_STDIO
75: 94a137,139
76: > #ifdef NON_UNIX_STDIO
77: > if (!(bf = fopen(b->ufnm, f__w_mode[b->ufmt])))
78: > #else
79: 96c141
80: < #ifdef MSDOS
81: ---
82: > #endif
83: 98,100d142
84: < goto done;
85: < #else
86: < { rc = 1; goto done; }
87: 103,104c145
88: < return 0;
89: < #endif
90: ---
91: > goto done;
92: 109,110c150,151
93: < (void) strcpy(nm,"tmp.FXXXXXX");
94: < (void) mktemp(nm);
95: ---
96: > strcpy(nm,"tmp.FXXXXXX");
97: > mktemp(nm);
98: 111a153,182
99: > #ifdef NON_UNIX_STDIO
100: > if (!(bf = fopen(b->ufnm, f__r_mode[0]))) {
101: > bad:
102: > rc = 1;
103: > goto done;
104: > }
105: > if (!(tf = fopen(nm, f__w_mode[0])))
106: > goto bad;
107: > if (copy(bf, loc, tf)) {
108: > bad1:
109: > rc = 1;
110: > goto done1;
111: > }
112: > if (!(bf = freopen(b->ufnm, f__w_mode[0], bf)))
113: > goto bad1;
114: > if (!(tf = freopen(nm, f__r_mode[0], tf)))
115: > goto bad1;
116: > if (copy(tf, loc, bf))
117: > goto bad1;
118: > if (f__w_mode[0] != f__w_mode[b->ufmt]) {
119: > if (!(bf = freopen(b->ufnm, f__w_mode[b->ufmt+2], bf)))
120: > goto bad1;
121: > fseek(bf, loc, SEEK_SET);
122: > }
123: > done1:
124: > fclose(tf);
125: > unlink(nm);
126: > done:
127: > f__cf = b->ufd = bf;
128: > #else
129: 115a187
130: > fseek(b->ufd, loc, SEEK_SET);
131: 117,124d188
132: < #ifdef MSDOS
133: < {
134: < extern char *f__r_mode[];
135: < b->uwrt = 0;
136: < if (!(b->ufd = fopen(b->ufnm, f__r_mode[b->ufmt])))
137: < rc = 1;
138: < }
139: < if (loc)
140: 126d189
141: < fseek(b->ufd, loc, SEEK_SET);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.